gates / gates (push) Successful in 13m17s
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.
21 lines
1.1 KiB
Bash
Executable File
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 ' "$@")"
|