Files
reyna-cli/backup/macmini-automation-baseline-2026-08-03/macmini-mcp/scripts/install-ksay-service.sh
T
2026-08-03 11:47:09 -04:00

65 lines
1.7 KiB
Bash
Executable File

#!/bin/zsh
set -euo pipefail
LABEL="com.local.ksay-kokoro"
PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
PYTHON_BIN="$PROJECT_DIR/.venv/bin/python"
AGENT_DIR="$HOME/Library/LaunchAgents"
PLIST="$AGENT_DIR/$LABEL.plist"
LOG_DIR="$PROJECT_DIR/.logs"
DOMAIN="gui/$(id -u)"
CLI_LINK="/opt/homebrew/bin/ksay"
if [[ ! -x "$PYTHON_BIN" ]]; then
echo "Missing $PYTHON_BIN. Run npm run python:install first." >&2
exit 1
fi
mkdir -p "$AGENT_DIR" "$LOG_DIR"
cat > "$PLIST" <<PLIST
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>$LABEL</string>
<key>ProgramArguments</key>
<array>
<string>$PYTHON_BIN</string>
<string>$PROJECT_DIR/scripts/ksay_server.py</string>
</array>
<key>WorkingDirectory</key>
<string>$PROJECT_DIR</string>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>ThrottleInterval</key>
<integer>2</integer>
<key>StandardOutPath</key>
<string>$LOG_DIR/ksay.out.log</string>
<key>StandardErrorPath</key>
<string>$LOG_DIR/ksay.err.log</string>
</dict>
</plist>
PLIST
plutil -lint "$PLIST"
launchctl bootout "$DOMAIN" "$PLIST" 2>/dev/null || true
launchctl bootstrap "$DOMAIN" "$PLIST"
launchctl enable "$DOMAIN/$LABEL"
launchctl kickstart -k "$DOMAIN/$LABEL"
if [[ -d "$(dirname "$CLI_LINK")" && -w "$(dirname "$CLI_LINK")" ]]; then
ln -sf "$PROJECT_DIR/bin/ksay" "$CLI_LINK"
echo "Linked CLI: $CLI_LINK"
else
echo "Could not link $CLI_LINK. Add $PROJECT_DIR/bin to PATH or link bin/ksay manually." >&2
fi
echo "Installed $LABEL"
echo "Endpoint: http://127.0.0.1:7332"
echo "Try: ksay --start"
echo "Logs: $LOG_DIR/ksay.*.log"