#!/usr/bin/env zsh
set -euo pipefail

campaign="${1:-}"
page="${2:-}"
desktop_url="${3:-}"
mobile_url="${4:-}"

if [[ -z "$campaign" || -z "$page" ]]; then
  echo "usage: scripts/run-one.v5.1.0.zsh <campaign> <page> [desktop_url] [mobile_url]"
  exit 1
fi

run_step(){
  echo ""
  echo "[run-one:v5] $1"
}

# STREAM_PATH_NOTE: "awareness" is the hardcoded default stream name.
preflight_json="campaigns/content/$campaign/awareness/_sologen/json/preflight.json"
if [[ -s "$preflight_json" ]]; then
  run_step "sync preflight -> sologen.config.json"
  scripts/sync-preflight-config.v0.1.0.zsh "$campaign"
fi

if [[ -n "$desktop_url" || -n "$mobile_url" ]]; then
  if [[ -z "$desktop_url" || -z "$mobile_url" ]]; then
    echo "ERROR If passing URLs, provide both desktop_url and mobile_url."
    exit 2
  fi
  run_step "export-frame-jsons"
  scripts/export-frame-jsons.v0.1.3.zsh "$campaign" "$page" "$desktop_url" "$mobile_url"

  run_step "generate-asset-names"
  node scripts/generate-asset-names.mjs "$campaign"

  run_step "export-vectors"
  scripts/export-vectors.zsh "$campaign" "$desktop_url" "$mobile_url" || true

  run_step "export-exportables"
  scripts/export-exportables.v0.1.6.zsh "$campaign" "$page" "$desktop_url" "$mobile_url"

  run_step "export-image-fills"
  scripts/export-image-fills.v0.1.3.zsh "$campaign" "$page" "$desktop_url" "$mobile_url"
else
  run_step "export-frame-jsons"
  scripts/export-frame-jsons.v0.1.3.zsh "$campaign" "$page"

  run_step "generate-asset-names"
  node scripts/generate-asset-names.mjs "$campaign"

  run_step "export-vectors"
  scripts/export-vectors.zsh "$campaign" || true

  run_step "export-exportables"
  scripts/export-exportables.v0.1.6.zsh "$campaign" "$page"

  run_step "export-image-fills"
  scripts/export-image-fills.v0.1.3.zsh "$campaign" "$page"
fi

run_step "build-one"
scripts/build-one.v5.1.0.zsh "$campaign" "$page"

echo ""
echo "[run-one:v5] done: campaign=$campaign page=$page"
