Files
archy/packages/app/scripts/dev.sh
T

39 lines
952 B
Bash
Raw Normal View History

#!/usr/bin/env bash
# Start Claude proxy and Vite dev server together.
# Both are killed when either exits or when this script receives SIGINT/SIGTERM.
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
APP_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
cd "$APP_DIR"
# Generate a dev API token if not already set
if [ -z "$VITE_DEV_API_TOKEN" ]; then
export VITE_DEV_API_TOKEN=$(openssl rand -hex 16)
fi
cleanup() {
kill 0 2>/dev/null || true
wait 2>/dev/null || true
}
trap cleanup EXIT INT TERM
# Use local node_modules binaries
BIN="$APP_DIR/node_modules/.bin"
# Start Claude proxy in background (skip gracefully if already running on :3141)
if lsof -ti:3141 > /dev/null 2>&1; then
echo " Claude proxy already running on :3141 — skipping"
else
"$BIN/tsx" server/claude-proxy.ts &
sleep 0.3
fi
# Start Vite dev server in background
"$BIN/vite" --host &
# Wait for all background jobs (compatible with bash 3.2 on macOS)
wait