#!/usr/bin/env bash
set -euo pipefail

ROOT_DIR="${VOICE_AGENT_ROOT:-$HOME/repos/exult-agent/tools/voice-agent}"
ENV_FILE="${VOICE_AGENT_ENV_FILE:-$HOME/.config/voice-agent.env}"
UNIT_DIR="$HOME/.config/systemd/user"
UNIT_FILE="$UNIT_DIR/voice-agent.service"
TOKEN_FILE="${MCP_BEARER_TOKEN_FILE:-$HOME/.config/mcp-bearer-token}"

mkdir -p "$UNIT_DIR" "$(dirname "$ENV_FILE")"

if [ ! -f "$ENV_FILE" ]; then
  cp "$ROOT_DIR/deploy/voice-agent.env.example" "$ENV_FILE"
  chmod 600 "$ENV_FILE"
  if [ -f "$TOKEN_FILE" ]; then
    token="$(tr -d '\n' < "$TOKEN_FILE")"
    tmp="$(mktemp)"
    awk -v token="$token" '
      /^MCP_BEARER_TOKEN=/ { print "MCP_BEARER_TOKEN=" token; next }
      { print }
    ' "$ENV_FILE" > "$tmp"
    mv "$tmp" "$ENV_FILE"
    chmod 600 "$ENV_FILE"
  fi
fi

cp "$ROOT_DIR/deploy/voice-agent.service" "$UNIT_FILE"
systemctl --user daemon-reload
systemctl --user disable --now voice-agent.service >/dev/null 2>&1 || true

echo "Installed disabled service at $UNIT_FILE"
echo "Env file: $ENV_FILE"
echo "Fill OPENAI_API_KEY and RINGCENTRAL_SIP_* before enabling."
