[object Object]

← back to Wolfgordon Crawl

Add Phase-2 resumable daily-push.sh driver + launchd plist (11:00 AM)

d88890b37715e12cf1f8c9919c5c97b5f5129adf · 2026-06-19 10:21:22 -0700 · Steve

Files touched

Diff

commit d88890b37715e12cf1f8c9919c5c97b5f5129adf
Author: Steve <steve@designerwallcoverings.com>
Date:   Fri Jun 19 10:21:22 2026 -0700

    Add Phase-2 resumable daily-push.sh driver + launchd plist (11:00 AM)
---
 com.steve.wolfgordon-daily-push.plist | 34 ++++++++++++++++++++++++++++++++++
 daily-push.sh                         | 34 ++++++++++++++++++++++++++++++++++
 2 files changed, 68 insertions(+)

diff --git a/com.steve.wolfgordon-daily-push.plist b/com.steve.wolfgordon-daily-push.plist
new file mode 100644
index 0000000..cf24e64
--- /dev/null
+++ b/com.steve.wolfgordon-daily-push.plist
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+    <key>Label</key>
+    <string>com.steve.wolfgordon-daily-push</string>
+
+    <key>ProgramArguments</key>
+    <array>
+        <string>/bin/bash</string>
+        <string>/Users/stevestudio2/Projects/wolfgordon-crawl/daily-push.sh</string>
+    </array>
+
+    <!-- Run daily at 11:00 AM. -->
+    <key>StartCalendarInterval</key>
+    <dict>
+        <key>Hour</key>
+        <integer>11</integer>
+        <key>Minute</key>
+        <integer>0</integer>
+    </dict>
+
+    <key>WorkingDirectory</key>
+    <string>/Users/stevestudio2/Projects/wolfgordon-crawl</string>
+
+    <key>StandardOutPath</key>
+    <string>/Users/stevestudio2/Projects/wolfgordon-crawl/logs/launchd-daily-push.out.log</string>
+    <key>StandardErrorPath</key>
+    <string>/Users/stevestudio2/Projects/wolfgordon-crawl/logs/launchd-daily-push.err.log</string>
+
+    <key>RunAtLoad</key>
+    <false/>
+</dict>
+</plist>
diff --git a/daily-push.sh b/daily-push.sh
new file mode 100755
index 0000000..b779ea9
--- /dev/null
+++ b/daily-push.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+# ============================================================================
+# Wolf Gordon Phase-2 daily new-product driver (resumable, idempotent-by-SKU).
+#
+# Creates up to MAX net-new WG products/day (each = 2 variants: Yard + Sample)
+# staggered under Shopify's 1,000-variant/day cap. push-shopify.js is
+# idempotent-by-SKU + has a legacy-peer guard, so it ONLY ever creates rows
+# that aren't already on the store — safe to run every day until the catalog
+# is fully onboarded. The pusher defers gracefully on VARIANT_THROTTLE_EXCEEDED.
+#
+# Manual run:   bash daily-push.sh
+# Launchd runs it ~11:00 AM daily (see com.steve.wolfgordon-daily-push.plist).
+# ============================================================================
+set -euo pipefail
+
+REPO="$HOME/Projects/wolfgordon-crawl"
+cd "$REPO"
+
+# 480 products = 960 variants/day, comfortably under the 1k cap.
+MAX="${WG_DAILY_MAX:-480}"
+LOG="$REPO/logs/daily-push-$(date +%Y%m%d-%H%M%S).log"
+mkdir -p "$REPO/logs"
+
+# Prefer Homebrew node (launchd PATH is minimal).
+export PATH="/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:$PATH"
+
+{
+  echo "=== Wolf Gordon daily Phase-2 push — $(date) ==="
+  node push-shopify.js --new-only --max "$MAX" --apply
+  echo "=== done — $(date) ==="
+} >> "$LOG" 2>&1
+
+# Surface the tail so a foreground run still shows the result.
+tail -n 20 "$LOG"

← 4be3ecc Add --phase1 (variant-free update+archive) + --new-only/--ma  ·  back to Wolfgordon Crawl  ·  Fix image extraction: capture both CDN paths (/production/im 79044e4 →