#!/bin/zsh set -euo pipefail PLIST_SOURCE="/Users/kris/code/boss/deployment/launchd/com.hyzq.boss.local-agent.plist" PLIST_TARGET="$HOME/Library/LaunchAgents/com.hyzq.boss.local-agent.plist" CONFIG_PATH="${1:-/Users/kris/code/boss/local-agent/config.cloud.json}" if [[ "$CONFIG_PATH" != /* ]]; then CONFIG_PATH="/Users/kris/code/boss/${CONFIG_PATH}" fi if [[ ! -f "$CONFIG_PATH" ]]; then echo "Config file not found: $CONFIG_PATH" >&2 exit 1 fi mkdir -p "$HOME/Library/LaunchAgents" cp "$PLIST_SOURCE" "$PLIST_TARGET" python3 - <<'PY' "$PLIST_TARGET" "$CONFIG_PATH" from pathlib import Path import sys plist_path = Path(sys.argv[1]) config_path = sys.argv[2] text = plist_path.read_text() plist_path.write_text(text.replace("__BOSS_AGENT_CONFIG__", config_path)) PY plutil -lint "$PLIST_TARGET" >/dev/null launchctl unload "$PLIST_TARGET" >/dev/null 2>&1 || true launchctl load "$PLIST_TARGET" echo "Loaded $PLIST_TARGET with $CONFIG_PATH"