#!/usr/bin/env bash
# LightLink agent — installer for macOS / Linux
# Run as your normal user; the installer prompts sudo for systemd/launchd.
#   curl -sS https://<tenant>.lightlink.uludeveloper.top/install/unix.sh | bash
set -e

SERVER_URL='https://lightlink.uludeveloper.top'
DOWNLOAD_URL="$SERVER_URL/download/employeetrack-agent-mac?code=1122"
INSTALL_DIR="$HOME/.lightlink"
CONFIG_FILE="$INSTALL_DIR/config.toml"
BINARY="$INSTALL_DIR/employeetrack-agent"

mkdir -p "$INSTALL_DIR"
echo ">> Downloading agent..."
if command -v curl >/dev/null; then
    curl -fsSL "$DOWNLOAD_URL" -o "$BINARY"
elif command -v wget >/dev/null; then
    wget -qO "$BINARY" "$DOWNLOAD_URL"
else
    echo "ERROR: need curl or wget"; exit 1
fi
chmod +x "$BINARY"

echo ">> Writing config..."
cat > "$CONFIG_FILE" <<EOF
server_url = "$SERVER_URL"
screenshot_quality = 75
heartbeat_interval = 60
idle_timeout = 300
max_offline_screenshots = 500
log_level = "info"
EOF

UNAME="$(uname -s)"
case "$UNAME" in
    Darwin)
        PLIST="$HOME/Library/LaunchAgents/com.lightlink.agent.plist"
        cat > "$PLIST" <<EOF
<?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>com.lightlink.agent</string>
  <key>ProgramArguments</key><array>
    <string>$BINARY</string><string>--config</string><string>$CONFIG_FILE</string>
  </array>
  <key>RunAtLoad</key><true/>
  <key>KeepAlive</key><true/>
</dict></plist>
EOF
        launchctl unload "$PLIST" 2>/dev/null || true
        launchctl load "$PLIST"
        echo "OK macOS launchd agent loaded."
        ;;
    Linux)
        UNIT="$HOME/.config/systemd/user/lightlink-agent.service"
        mkdir -p "$(dirname "$UNIT")"
        cat > "$UNIT" <<EOF
[Unit]
Description=LightLink tracker agent
[Service]
ExecStart=$BINARY --config $CONFIG_FILE
Restart=always
RestartSec=15
[Install]
WantedBy=default.target
EOF
        systemctl --user daemon-reload
        systemctl --user enable --now lightlink-agent.service
        echo "OK Linux systemd user-unit started."
        ;;
    *)
        echo "Unsupported OS: $UNAME"
        exit 1
        ;;
esac

echo ""
echo "Done. Open $SERVER_URL/admin to see your device come online."