macsync/run

54 lines
1.5 KiB
Text
Raw Permalink Normal View History

#!/bin/zsh
#
# ./run - convenient dev command for mac-sync
#
# Builds the web UI (so localhost:8765 gets fresh assets)
# then builds + launches the Mac agent.
#
# Usage:
# ./run # full build + launch
# ./run web # only rebuild web UI (then hard-refresh 8765)
# ./run swift # only rebuild the Swift app
#
# Before running:
# - Quit any existing "Mac Sync" menu bar agent first.
# - This launches the dev binary from .build/debug/, which
# serves http://localhost:8765 using the just-built web/dist/.
set -e
cd "$(dirname "$0")"
cmd=${1:-all}
case "$cmd" in
web)
echo "→ Building web UI only (skipping typecheck for quick release)..."
(cd web && bunx vite build)
echo "✅ web/dist/ updated with latest assets."
echo " Hard-refresh http://localhost:8765 (Cmd+Shift+R) or restart the agent to pick up new dist/."
;;
swift)
echo "→ Building MacSyncApp (Swift) only..."
swift build --product MacSyncApp
echo "✅ .build/debug/MacSyncApp updated."
;;
all|*)
echo "→ Building web UI (skipping typecheck for quick release)..."
(cd web && bunx vite build)
echo "→ Building MacSyncApp..."
swift build --product MacSyncApp
echo ""
echo "→ Launching dev MacSyncApp"
echo " (serves http://localhost:8765 using the fresh web/dist/)"
echo " Quit any previous 'Mac Sync' agent first if it's still running."
echo ""
exec ./.build/debug/MacSyncApp
;;
esac