31 lines
911 B
Bash
Executable File
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"
|