Баннер BBox как шаблон из репозитория (motd/10-armbian-header.tpl): версия/URL подставляются при установке, обновление при смене версии
This commit is contained in:
@@ -150,26 +150,61 @@ setup_hostname() {
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 6. Баннер BBox (MOTD)
|
||||
# 6. Баннер BBox (MOTD) — шаблон из репозитория
|
||||
# ---------------------------------------------------------------------------
|
||||
setup_motd() {
|
||||
local HEADER="/etc/update-motd.d/10-armbian-header"
|
||||
if [ -f "$HEADER" ] && ! grep -q "BBox" "$HEADER"; then
|
||||
log "Обновление баннера входа: BBox v${BBOX_VERSION} ($BBOX_URL)"
|
||||
cp "$HEADER" "${HEADER}.bak"
|
||||
# Шаблон: motd/10-armbian-header.tpl с плейсхолдерами __BBOX_VERSION__ / __BBOX_URL__.
|
||||
# При каждом запуске файл целиком перезаписывается из шаблона, поэтому смена
|
||||
# версии в репозитории автоматически обновляет баннер на устройстве.
|
||||
# ---------------------------------------------------------------------------
|
||||
MOTD_HEADER="/etc/update-motd.d/10-armbian-header"
|
||||
MOTD_TPL_REPO="motd/10-armbian-header.tpl"
|
||||
|
||||
# ASCII-баннер
|
||||
sed -i 's|figlet -f small " $VENDOR"|figlet -f small " BBox"|' "$HEADER"
|
||||
render_motd() {
|
||||
local tpl="$1"
|
||||
sed -e "s|__BBOX_VERSION__|${BBOX_VERSION}|g" \
|
||||
-e "s|__BBOX_URL__|${BBOX_URL}|g" "$tpl"
|
||||
}
|
||||
|
||||
# Строка версии + подпись
|
||||
sed -i 's|running Armbian Linux \\e\[0;92m\${KERNELID\^}\\x1B\[0m|running \\e[0;92m${KERNELID^}\\x1B[0m, built on Armbian Linux|' "$HEADER"
|
||||
# Вставка строки версии/подписи после строки баннера figlet
|
||||
if ! grep -q "bbox.wtf v" "$HEADER"; then
|
||||
sed -i "/figlet -f small \" BBox\"/a echo -e \" \\\\e[0;92mv${BBOX_VERSION}\\\\x1B[0m ${BBOX_URL} on \$BOARD_NAME\"\necho -e \" \\\\e[0;36mCreated by free people for a free world, in the name of privacy and security.\\\\x1B[0m\"" "$HEADER"
|
||||
install_motd_template() {
|
||||
local tpl_src=""
|
||||
local script_dir
|
||||
script_dir="$(dirname "$(readlink -f "$0")")"
|
||||
# Источники шаблона:
|
||||
# 1) рядом со скриптом (репозиторий / временная загрузка)
|
||||
# 2) в общем хранилище (после install_scripts.sh -> /usr/local/share/bbox/motd)
|
||||
for candidate in \
|
||||
"$script_dir/$MOTD_TPL_REPO" \
|
||||
"$script_dir/../$MOTD_TPL_REPO" \
|
||||
"$script_dir/motd/10-armbian-header.tpl" \
|
||||
"/usr/local/share/bbox/motd/$(basename "$MOTD_TPL_REPO")"
|
||||
do
|
||||
if [ -f "$candidate" ]; then
|
||||
tpl_src="$candidate"
|
||||
break
|
||||
fi
|
||||
log "Баннер обновлён."
|
||||
done
|
||||
|
||||
if [ -z "$tpl_src" ]; then
|
||||
warn "Шаблон баннера не найден ($MOTD_TPL_REPO), баннер не изменён."
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Бэкап дефолтного баннера только один раз
|
||||
if [ ! -f "${MOTD_HEADER}.bak" ]; then
|
||||
cp -f "$MOTD_HEADER" "${MOTD_HEADER}.bak" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Запись шаблона с подстановкой версии/URL
|
||||
render_motd "$tpl_src" > "$MOTD_HEADER"
|
||||
chmod 755 "$MOTD_HEADER"
|
||||
log "Баннер BBox установлен из шаблона: v${BBOX_VERSION} (${BBOX_URL})"
|
||||
}
|
||||
|
||||
setup_motd() {
|
||||
if [ -f "$MOTD_HEADER" ]; then
|
||||
install_motd_template
|
||||
else
|
||||
log "Баннер BBox уже установлен или скрипт не найден."
|
||||
warn "Баннер входа не найден ($MOTD_HEADER), пропуск."
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user