← back to Japan Enrich

onboard_all.sh

27 lines

#!/usr/bin/env bash
# Autonomous local-model onboarding pipeline for the Sangetsu distributor lines.
# Runs UNATTENDED via launchd (com.steve.japan-onboard) — no Claude Code needed.
# $0: local Ollama only (qwen2.5vl vision + Pillow hex). Resumable + idempotent.
set -uo pipefail
cd "$(dirname "$0")"
LOG="staging/onboard-run.log"
exec >> "$LOG" 2>&1
echo "=== [$(date '+%F %T')] onboard_all START (pid $$) ==="

# single-instance guard (the run can take hours; don't stack)
LOCK="staging/.onboard.lock"
if [ -f "$LOCK" ] && kill -0 "$(cat "$LOCK" 2>/dev/null)" 2>/dev/null; then
  echo "already running (pid $(cat "$LOCK")) — exit"; exit 0
fi
echo $$ > "$LOCK"; trap 'rm -f "$LOCK"' EXIT

# 1) internal-line onboarding manifest (offline, fast, $0)
python3 build_onboarding_manifest.py

# 2) local-model enrichment — style/material via qwen2.5vl, hex/color via Pillow.
#    Resumable (carry-forward), skip-existing images, local Ollama only. $0.
echo "--- enrichment (local qwen2.5vl + Pillow, resumable) ---"
SANGETSU_VISION=1 OLLAMA_URL="${OLLAMA_URL:-http://127.0.0.1:11434}" python3 enrich_sangetsu.py

echo "=== [$(date '+%F %T')] onboard_all DONE ==="