#!/bin/sh
set -e

APP_DIR="/opt/WATCH_IT_REMOTE_SERVER"
SERVICE_NAME="watch_it_remote_server"
SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
APP_BIN="${APP_DIR}/watchitremoteserver"
RUN_USER="${SUDO_USER:-}"

echo "[WATCH IT] postinst: installing services..."

if [ ! -x "$APP_BIN" ]; then
  echo "[WATCH IT] ERROR: Executable not found: $APP_BIN"
  exit 1
fi

cat > "$SERVICE_FILE" <<EOF2
[Unit]
Description=WATCH IT Remote Server (PC-A) - Headless Auto Connect
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
WorkingDirectory=${APP_DIR}
ExecStart=${APP_BIN} --headless
Restart=always
RestartSec=3
Environment=NODE_ENV=production
NoNewPrivileges=true
PrivateTmp=true
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target
EOF2

if [ -x "${APP_DIR}/resources/scripts/install_remote_desktop_services.sh" ]; then
  bash "${APP_DIR}/resources/scripts/install_remote_desktop_services.sh" "$RUN_USER" "$APP_DIR" || true
fi

chmod 644 "$SERVICE_FILE"
systemctl daemon-reload
systemctl enable "$SERVICE_NAME" || true
systemctl restart "$SERVICE_NAME" || true

echo "[WATCH IT] postinst: enabled + started $SERVICE_NAME"
echo "[WATCH IT] postinst: service setup complete"
exit 0