← back to Wallco Ai
drunk-animals: fix launchd PATH for PIL + retro-backfill 26 designs
307a3741d13e152a9bb4c12f2c4386ef9e84a37d · 2026-05-12 18:27:46 -0700 · SteveStudio2
launchd zsh -l rebuilds PATH from /etc/paths, which puts /usr/bin
(system python, no PIL) before /opt/homebrew/bin (brew python, with
PIL/Pillow). First 26 drunk-animal designs were generated without the
seamless edge-fix or the triple-layer SAND, LLC watermark.
- Prepend /opt/homebrew/bin to PATH inside the plist Program string
- scripts/backfill_drunk_animals.sh: idempotent re-run of make_seamless
+ watermark against the 26 already-persisted designs (all 26 ✓)
- Verified next tick (#1606) ran clean — no PIL errors in log
Files touched
A scripts/backfill_drunk_animals.sh
Diff
commit 307a3741d13e152a9bb4c12f2c4386ef9e84a37d
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date: Tue May 12 18:27:46 2026 -0700
drunk-animals: fix launchd PATH for PIL + retro-backfill 26 designs
launchd zsh -l rebuilds PATH from /etc/paths, which puts /usr/bin
(system python, no PIL) before /opt/homebrew/bin (brew python, with
PIL/Pillow). First 26 drunk-animal designs were generated without the
seamless edge-fix or the triple-layer SAND, LLC watermark.
- Prepend /opt/homebrew/bin to PATH inside the plist Program string
- scripts/backfill_drunk_animals.sh: idempotent re-run of make_seamless
+ watermark against the 26 already-persisted designs (all 26 ✓)
- Verified next tick (#1606) ran clean — no PIL errors in log
---
scripts/backfill_drunk_animals.sh | 43 +++++++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/scripts/backfill_drunk_animals.sh b/scripts/backfill_drunk_animals.sh
new file mode 100755
index 0000000..f497445
--- /dev/null
+++ b/scripts/backfill_drunk_animals.sh
@@ -0,0 +1,43 @@
+#!/bin/zsh
+# Backfill seamless + watermark on the 26 drunk-animal designs that were
+# generated before the launchd PATH fix made /opt/homebrew/bin/python3
+# (the one with PIL/Pillow) available. Each design gets:
+# 1. scripts/make_seamless.py — collapse edge-pixel delta for tileability
+# 2. scripts/watermark.py embed — triple-layer SAND, LLC copyright
+#
+# Idempotent — both scripts overwrite in-place; running twice is harmless.
+
+ROOT=/Users/stevestudio2/Projects/wallco-ai
+PSQL=/opt/homebrew/opt/postgresql@14/bin/psql
+PY=/opt/homebrew/bin/python3
+cd "$ROOT"
+
+IDS=(1514 1515 1516 1517 1520 1523 1525 1527 1528 1529 1530 1531 1532 1533 \
+ 1534 1535 1536 1537 1538 1539 1558 1567 1578 1585 1592 1602)
+
+ok=0
+fail=0
+YEAR=$(/bin/date +%Y)
+
+for id in "${IDS[@]}"; do
+ path=$("$PSQL" dw_unified -At -c "SELECT local_path FROM spoon_all_designs WHERE id=$id;" 2>/dev/null)
+ if [[ -z "$path" || ! -f "$path" ]]; then
+ echo " ✗ #$id missing file (path='$path')"
+ fail=$((fail+1))
+ continue
+ fi
+ "$PY" scripts/make_seamless.py "$path" "$path" >/dev/null 2>/tmp/wms_seam.err
+ seam=$?
+ "$PY" scripts/watermark.py embed "$path" --out "$path" --owner "SAND, LLC" --year "$YEAR" >/dev/null 2>/tmp/wms_wm.err
+ wm=$?
+ if [[ $wm -eq 0 ]]; then
+ ok=$((ok+1))
+ echo " ✓ #$id watermarked (seamless=$seam)"
+ else
+ fail=$((fail+1))
+ echo " ✗ #$id watermark exit=$wm: $(/usr/bin/head -1 /tmp/wms_wm.err)"
+ fi
+done
+
+echo ""
+echo "Backfill done — $ok ok, $fail failed"
← 97ebc80 by-color: 5min in-memory TTL cache (FIFO 1k cap, sorted-excl
·
back to Wallco Ai
·
/designs: dismissible hint pointing trade users to the /brie 89a8e15 →