[object Object]

← back to Rentv Ad Engine

chore: refresh.sh deploy-guard (keep backup until push succeeds, rollback on rsync fail) + version bump (session close)

fa2ec3ff44334ab330bff4f9a4af9cba1ee6ad2b · 2026-08-07 15:50:56 -0700 · Steve Abrams

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit fa2ec3ff44334ab330bff4f9a4af9cba1ee6ad2b
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Fri Aug 7 15:50:56 2026 -0700

    chore: refresh.sh deploy-guard (keep backup until push succeeds, rollback on rsync fail) + version bump (session close)
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
 package.json       |  2 +-
 scripts/refresh.sh | 11 +++++++----
 2 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/package.json b/package.json
index c0d2031..d9b2d14 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "rentv-ad-engine",
-  "version": "0.1.0",
+  "version": "0.1.1",
   "private": true,
   "description": "Searchable directory of every advertiser/sponsor and every guest across RENTV's Vimeo video library, harvested from auto-caption transcripts.",
   "main": "server.js",
diff --git a/scripts/refresh.sh b/scripts/refresh.sh
index bcfe0d5..e69b750 100755
--- a/scripts/refresh.sh
+++ b/scripts/refresh.sh
@@ -50,12 +50,15 @@ if [ "$ADV1" -lt "$((ADV0-3))" ] || [ "$AIR1" -lt "$((AIR0-5))" ] || [ "$ADV1" -
   say "✗ GUARD TRIPPED — rebuild collapsed (adv ${ADV0}→${ADV1}, air ${AIR0}→${AIR1}); rolling back, NOT deploying."
   restore; rm -rf "$BK"; exit 2
 fi
-rm -rf "$BK"
 
+# Deploy — KEEP the local backup until the push succeeds so a failed rsync can roll local back.
 say "→ deploy regenerated data to prod (targeted, no --delete)"
-rsync -az --exclude 'soundcloud/audio' --exclude 'transcripts' data/ "$REMOTE/data/" >>"$LOG" 2>&1
-rsync -az public/img/posters/ "$REMOTE/public/img/posters/" >>"$LOG" 2>&1
-ssh -o ConnectTimeout=15 root@45.61.58.125 'pm2 restart rentv-ad-engine --update-env >/dev/null 2>&1' >>"$LOG" 2>&1
+if ! rsync -az --exclude 'soundcloud/audio' --exclude 'transcripts' data/ "$REMOTE/data/" >>"$LOG" 2>&1; then
+  say "✗ rsync to prod FAILED — rolling back local, NOT restarting pm2."; restore; rm -rf "$BK"; exit 3
+fi
+rsync -az public/img/posters/ "$REMOTE/public/img/posters/" >>"$LOG" 2>&1 || say "⚠ poster rsync failed (non-fatal)"
+rm -rf "$BK"   # prod data pushed OK — safe to drop the local backup now
+ssh -o ConnectTimeout=15 root@45.61.58.125 'pm2 restart rentv-ad-engine --update-env >/dev/null 2>&1' >>"$LOG" 2>&1 || say "⚠ pm2 restart failed"
 CODE=$(curl -s -o /dev/null -w '%{http_code}' -u 'admin:DW2024!' https://rentv.agentabrams.com/advertisers/api/health)
 say "prod health after deploy: $CODE"
 git add data/ public/img/posters >/dev/null 2>&1

← 6782e69 add refresh launchd plist  ·  back to Rentv Ad Engine  ·  auto-data-snapshot: 2026-08-07T15:54:54 (1 data files) — pac 72e1963 →