added backlight and fixed outbound

This commit is contained in:
2026-07-21 09:17:48 +03:00
parent ff2b8a250e
commit 5392273794
37 changed files with 1560 additions and 76 deletions
+47 -4
View File
@@ -101,6 +101,37 @@ switch_to() {
ln -sfn "$1" "$CURRENT"
}
# Install privileged helpers + sudoers from the staged package so OTA can
# deliver new bt-* scripts (e.g. bt-brightness) without a full redeploy.
sync_helpers() {
local dest="$1"
local src="$dest/webconfig/scripts"
local s name tmp_sudoers
[ -d "$src" ] || { log "sync_helpers: no $src"; return 0; }
mkdir -p "$ROOT/scripts"
for s in "$src"/bt-*; do
[ -f "$s" ] || continue
name="$(basename "$s")"
install -m 0755 "$s" "$ROOT/scripts/$name"
chown root:root "$ROOT/scripts/$name" 2>/dev/null || true
sed -i 's/\r$//' "$ROOT/scripts/$name" 2>/dev/null || true
log "synced helper $name"
done
if [ -f "$src/buttontask.sudoers" ]; then
tmp_sudoers="$(mktemp)"
cp "$src/buttontask.sudoers" "$tmp_sudoers"
sed -i 's/\r$//' "$tmp_sudoers" 2>/dev/null || true
chmod 0440 "$tmp_sudoers"
if visudo -cf "$tmp_sudoers" >/dev/null 2>&1; then
install -m 0440 "$tmp_sudoers" /etc/sudoers.d/buttontask
log "synced sudoers"
else
log "sudoers validation failed — kept previous /etc/sudoers.d/buttontask"
fi
rm -f "$tmp_sudoers"
fi
}
cmd_stage() {
local pkg="$1"
[ -f "$pkg" ] || { write_status error "package not found"; exit 1; }
@@ -138,6 +169,9 @@ cmd_stage() {
chmod -R u=rwX,go=rX "$dest" 2>/dev/null || true
rm -f "$pkg"
write_status helpers "установка хелперов"
sync_helpers "$dest"
write_status switching "$ver"
switch_to "$dest"
restart_services
@@ -167,6 +201,14 @@ cmd_rollback() {
write_status rollback_done "откат выполнен"
}
cmd_sync_helpers() {
local dest
dest="$(readlink -f "$CURRENT" 2>/dev/null || true)"
[ -n "$dest" ] && [ -d "$dest" ] || { echo "no current version" >&2; exit 1; }
sync_helpers "$dest"
echo "helpers synced from $dest"
}
cmd_remove() {
local name="$1"
[[ "$name" =~ ^[A-Za-z0-9._-]+$ ]] || { echo "invalid version name" >&2; exit 1; }
@@ -184,8 +226,9 @@ cmd_remove() {
}
case "${1:-}" in
stage) [ "$#" -ge 2 ] || { echo "usage: bt-update stage <pkg>"; exit 2; }; cmd_stage "$2" ;;
rollback) cmd_rollback ;;
remove) [ "$#" -ge 2 ] || { echo "usage: bt-update remove <name>"; exit 2; }; cmd_remove "$2" ;;
*) echo "usage: bt-update {stage <pkg>|rollback|remove <name>}"; exit 2 ;;
stage) [ "$#" -ge 2 ] || { echo "usage: bt-update stage <pkg>"; exit 2; }; cmd_stage "$2" ;;
rollback) cmd_rollback ;;
sync-helpers) cmd_sync_helpers ;;
remove) [ "$#" -ge 2 ] || { echo "usage: bt-update remove <name>"; exit 2; }; cmd_remove "$2" ;;
*) echo "usage: bt-update {stage <pkg>|rollback|sync-helpers|remove <name>}"; exit 2 ;;
esac