#!/bin/bash
set -euo pipefail

PROJECT="${1:-}"
if [ -z "$PROJECT" ]; then
    echo "Usage: $0 <project-path> [socket-path]"
    exit 1
fi

SOCKET="${2:-$HOME/.khaos/wfl/khaos-wfl.sock}"
CONFIG_DIR="$HOME/.config/khaos-wfl"
CONFIG_FILE="$CONFIG_DIR/daemon.env"

mkdir -p "$CONFIG_DIR"
cat > "$CONFIG_FILE" <<EOF_CFG
KHAOS_WFL_PROJECT="$PROJECT"
KHAOS_WFL_SOCKET="$SOCKET"
EOF_CFG

echo "Wrote config: $CONFIG_FILE"

if command -v launchctl >/dev/null 2>&1 && [ -f /Library/LaunchAgents/studio.khaos.wfl.daemon.plist ]; then
    launchctl bootout "gui/$(id -u)/studio.khaos.wfl.daemon" >/dev/null 2>&1 || true
    launchctl bootout "gui/$(id -u)/com.khaos.wfl.daemon" >/dev/null 2>&1 || true  # legacy
    launchctl bootstrap "gui/$(id -u)" /Library/LaunchAgents/studio.khaos.wfl.daemon.plist
    launchctl kickstart -k "gui/$(id -u)/studio.khaos.wfl.daemon"
    echo "khaos-wfl LaunchAgent enabled for user $(id -un)"
    exit 0
fi

if command -v systemctl >/dev/null 2>&1; then
    mkdir -p "$HOME/.config/systemd/user"
    if [ -f /usr/local/lib/systemd/user/khaos-wfl.service ]; then
        cp /usr/local/lib/systemd/user/khaos-wfl.service "$HOME/.config/systemd/user/khaos-wfl.service"
    fi
    systemctl --user daemon-reload
    systemctl --user enable --now khaos-wfl.service
    echo "khaos-wfl systemd user service enabled"
    exit 0
fi

echo "No supported user service manager detected (launchctl/systemctl)."
exit 1
