Spaces:
Paused
Paused
Claude
Sync state on shutdown/gateway restart, add .dockerignore and backup jitter
e8e419f unverified | set -uo pipefail | |
| echo "=== Hermes Agent (HF Space) starting ===" | |
| # Deploys the Cloudflare Worker (keep-awake ping + Telegram Bot API proxy) | |
| # before configure_hermes.sh, which reads its output (cloudflare_proxy.env) | |
| # to point Hermes at the proxy when Telegram is configured. Synchronous | |
| # (with short curl timeouts) so config.yaml is written correctly on first | |
| # boot; best-effort and non-fatal. | |
| bash /home/user/app/scripts/configure_cloudflare.sh || true | |
| bash /home/user/app/scripts/restore_hermes.sh || true | |
| bash /home/user/app/scripts/configure_hermes.sh | |
| bash /home/user/app/scripts/configure_startup.sh || true | |
| # Trap shutdown signals so a Space restart/redeploy doesn't lose up to | |
| # SYNC_INTERVAL of state: run one last backup sync before supervisord's | |
| # children are stopped. Requires NOT exec'ing supervisord (exec would | |
| # replace this shell, and the trap with it) - so supervisord runs as a | |
| # background child instead, and this script blocks on it via `wait`. | |
| SUPERVISOR_PID="" | |
| graceful_shutdown() { | |
| echo "[entrypoint] caught shutdown signal; syncing state before exit..." | |
| python3 -c "from app.backup import run_backup; print('[entrypoint] shutdown sync result:', run_backup())" 2>&1 || true | |
| if [ -n "$SUPERVISOR_PID" ] && kill -0 "$SUPERVISOR_PID" 2>/dev/null; then | |
| kill -TERM "$SUPERVISOR_PID" 2>/dev/null || true | |
| wait "$SUPERVISOR_PID" 2>/dev/null || true | |
| fi | |
| exit 0 | |
| } | |
| trap graceful_shutdown SIGTERM SIGINT | |
| supervisord -c /home/user/app/supervisord.conf & | |
| SUPERVISOR_PID=$! | |
| wait "$SUPERVISOR_PID" | |