#!/bin/bash # chain3.sh — re-run Calibre-Web + Grimmory on the LIVE catalog, then the DRILL pass (n8n, opengist, vaultwarden), then back to live. E=/mnt/5_hdd/felhom.eu/git/felhom.eu/documentation/audits/catalog-sweep-2026-10-24 export SC=/run/user/1000/sweep-sc TARGET=sweep BASE=https://192.168.0.157 DRIVE_ROOT=/mnt/felhom-drives/hdd_1 SWEEP_EV=$E cd $E/tools VOL=/var/lib/docker/volumes/felhom-controller-data/_data G() { ssh -n -o BatchMode=yes root@192.168.0.138 "pct exec 9201 -- bash -c \"$1\""; } keep_first() { a=$1; if [ -d "$E/$a" ] && [ ! -d "$E/$a/run-$2" ]; then mkdir -p "$E/$a/run-$2"; find "$E/$a" -maxdepth 1 -mindepth 1 ! -name 'first-run' ! -name 'run-*' -exec mv {} "$E/$a/run-$2/" \; ; fi; } relogin() { sec run SWEEP_2026_10_24_DASH_PW -- bash brun.sh --env SWEEP_2026_10_24_DASH_PW:PW --push steps-login.json -- /opt/pw/bin/python /root/work/ui.py /root/work/steps-login.json > /dev/null 2>&1; } wait_ctl() { for i in $(seq 1 60); do s=$(G "docker inspect -f {{.State.Health.Status}} felhom-controller" 2>/dev/null); [ "$s" = healthy ] && return 0; sleep 5; done; return 1; } for a in calibre-web grimmory; do keep_first $a 2 echo "$(date -u +%T) START redo2 $a" >> $E/progress.log timeout 2700 python3 sweep.py $a > $E/$a.console.txt 2>&1 < /dev/null echo "$(date -u +%T) END redo2 $a rc=$?" >> $E/progress.log done # --- the drill pass --- echo "$(date -u +%T) REPOINT drill" >> $E/progress.log python3 repoint.py drill >> $E/_drill-repoint.txt 2>&1 wait_ctl; sleep 20; relogin G "docker logs --since 3m felhom-controller 2>&1 | grep -iE 'catalog sync|Pulling latest' | tail -3" >> $E/_drill-repoint.txt 2>&1 for a in n8n opengist vaultwarden; do keep_first $a drill-pre echo "$(date -u +%T) START drill $a" >> $E/progress.log if [ $a = vaultwarden ]; then FELHOM_BOX_ADMIN_SEED=1 timeout 2700 python3 sweep.py $a > $E/$a.console.txt 2>&1 < /dev/null; else timeout 2700 python3 sweep.py $a > $E/$a.console.txt 2>&1 < /dev/null; fi echo "$(date -u +%T) END drill $a rc=$?" >> $E/progress.log done # --- back to live, byte for byte --- python3 repoint.py live >> $E/_drill-repoint.txt 2>&1 wait_ctl; sleep 20; relogin echo "$(date -u +%T) REPOINT live; CHAIN3 DONE" >> $E/progress.log