Files
boss/scripts/install-local-launchagent.sh
2026-03-26 23:16:56 +08:00

31 lines
911 B
Bash
Executable File

#!/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
launchctl unload "$PLIST_TARGET" >/dev/null 2>&1 || true
launchctl load "$PLIST_TARGET"
echo "Loaded $PLIST_TARGET with $CONFIG_PATH"