Баннер BBox как шаблон из репозитория (motd/10-armbian-header.tpl): версия/URL подставляются при установке, обновление при смене версии

This commit is contained in:
NW
2026-08-07 15:20:45 +01:00
parent a0aa7e3be5
commit 7284a8108c
5 changed files with 284 additions and 17 deletions

View File

@@ -20,6 +20,9 @@ NC='\033[0m'
BIN_DIR="/usr/local/bin"
SERVICE_DIR="/etc/systemd/system"
MARKER="/var/lib/bbox-firstboot-done"
MOTD_HEADER="/etc/update-motd.d/10-armbian-header"
MOTD_TPL_REPO="motd/10-armbian-header.tpl"
MOTD_SHARE_DIR="/usr/local/share/bbox/motd"
log() { echo -e "${GREEN}[install-scripts]${NC} $*"; }
warn() { echo -e "${YELLOW}[install-scripts][warn]${NC} $*"; }
@@ -27,6 +30,10 @@ fail() { echo -e "${RED}[install-scripts][error]${NC} $*"; exit 1; }
SCRIPT_SRC_DIR="$(cd "$(dirname "$(readlink -f "$0")")" && pwd)"
# Версия/URL — единый источник (должны совпадать с init_system.sh)
BBOX_VERSION="${BBOX_VERSION:-1.2}"
BBOX_URL="${BBOX_URL:-bbox.wtf}"
install_script() {
local src="$1" dst="$2"
if [ ! -f "$src" ]; then
@@ -37,6 +44,45 @@ install_script() {
log "Установлен: $dst"
}
# ---------------------------------------------------------------------------
# Баннер BBox: установка из шаблона репозитория (motd/10-armbian-header.tpl)
# ---------------------------------------------------------------------------
install_motd_template() {
local tpl_src=""
for candidate in \
"$SCRIPT_SRC_DIR/$MOTD_TPL_REPO" \
"$SCRIPT_SRC_DIR/../$MOTD_TPL_REPO" \
"$SCRIPT_SRC_DIR/motd/10-armbian-header.tpl"
do
if [ -f "$candidate" ]; then
tpl_src="$candidate"
break
fi
done
if [ -z "$tpl_src" ]; then
warn "Шаблон баннера не найден ($MOTD_TPL_REPO), баннер не изменён."
return 1
fi
# Бэкап дефолтного баннера Armbian (один раз)
if [ -f "$MOTD_HEADER" ] && [ ! -f "${MOTD_HEADER}.bak" ]; then
cp -f "$MOTD_HEADER" "${MOTD_HEADER}.bak"
log "Бэкап дефолтного баннера: ${MOTD_HEADER}.bak"
fi
# Подстановка версии/URL и установка
sed -e "s|__BBOX_VERSION__|${BBOX_VERSION}|g" \
-e "s|__BBOX_URL__|${BBOX_URL}|g" "$tpl_src" > "$MOTD_HEADER"
chmod 755 "$MOTD_HEADER"
log "Баннер BBox v${BBOX_VERSION} установлен из шаблона ($tpl_src)"
# Копия шаблона для последующих запусков init-system из /usr/local/bin
mkdir -p "$MOTD_SHARE_DIR"
install -m 0644 "$tpl_src" "$MOTD_SHARE_DIR/$(basename "$tpl_src")"
log "Шаблон баннера сохранён: $MOTD_SHARE_DIR/$(basename "$tpl_src")"
}
install_firstboot_service() {
local unit="$SERVICE_DIR/bbox-firstboot.service"
cat > "$unit" <<EOF
@@ -78,6 +124,9 @@ main() {
log "tmux-конфиг установлен в /root/.tmux.conf"
fi
# Баннер BBox — всегда переустанавливается из шаблона репозитория
install_motd_template
install_firstboot_service
log "Готово. Запуск вручную:"