Files
felhom.eu/documentation/audits/catalog-sweep-2026-10-24/tools/brun.sh
T
admin 67053335d1
gates / gates (push) Successful in 13m17s
Catalog sweep 2026-10-24: all 65 catalog apps on a fresh box (52 work, 10 with a problem, 0 broken); register 208 -> 217 (R-1269..R-1277 opened; notes on R-739, R-1267); STATUS + D46; map B1 re-checked; evidence
Every catalog app installed, used, backed up, removed keeping data, reinstalled, restored and removed with data on a
fresh box from the public ISO (demo-hp VM 9360, Tester4), endpoint-level. Worst: a reinstall's capture rewrites the
kept unit so its restore breaks the app (R-1269, P2), the restore still reports success (R-1270, P2), and „use my kept
data" loaded another box's future-dated database (R-1271, P2). Drill catalog fixes for the morning list (n8n usage
data; OpenGist 256M, proven by a cgroup probe). VM 9360 and LXC 9361 destroyed; hub host Tester4-aa9466 left for the
operator. REPORT-catalog-sweep-2026-10-24.md.
2026-10-25 00:13:05 +02:00

21 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# brun.sh [--env A,B] [--push LOCALFILE]... -- CMD ARGS — run CMD in the browser LXC (CT 9330 on demo-hp).
# Secrets named with --env are read from THIS process's env (run brun.sh under `sec run A,B -- …`) and
# travel on stdin through envrun.py, never on a command line. Files pushed land in /root/work/.
set -euo pipefail
CT=${BR_CT:-9361}; envs=""; pushes=()
while [ "$1" != "--" ]; do
case "$1" in --env) envs=$2; shift 2;; --push) pushes+=("$2"); shift 2;; *) echo "brun: bad arg $1" >&2; exit 1;; esac
done; shift
for f in "${pushes[@]}"; do
ssh demo-hp "cat > /tmp/brun-push-$(basename "$f")" < "$f"
ssh demo-hp "LC_ALL=C pct push $CT /tmp/brun-push-$(basename "$f") /root/work/$(basename "$f") && rm -f /tmp/brun-push-$(basename "$f")"
done
{
IFS=, read -ra names <<< "$envs"
# each entry is NAME or SRC:DST (send the value of SRC under the name DST)
for n in "${names[@]}"; do [ -n "$n" ] || continue; src=${n%%:*}; dst=${n##*:}
printf '%s=%s\n' "$dst" "$(printf '%s' "${!src}" | base64 -w0)"; done
printf '\n'
} | ssh demo-hp "LC_ALL=C pct exec $CT -- /usr/local/bin/envrun.py $(printf '%q ' "$@")"