#!/bin/bash

OVERRIDE_FILE="/etc/systemd/system/getty@tty7.service.d/override.conf"

if [ "$EUID" -ne 0 ]; then
  echo "Error: Please run as root (e.g., sudo nems-screen <mode>)"
  exit 1
fi

set_tty() {
  echo "Switching Display to: Standard Console TTY Screen..."
  mkdir -p /etc/systemd/system/getty@tty7.service.d
  cat << 'SYSTEMD_EOF' > "$OVERRIDE_FILE"
[Service]
ExecStart=
ExecStart=-/usr/local/share/nems/nems-kiosk/tty-console-wrapper.sh
Restart=always
RestartSec=5
StandardInput=tty
StandardOutput=tty
SYSTEMD_EOF
  systemctl daemon-reload
  systemctl restart getty@tty7.service
  chvt 7
  echo "Active Display: TTY Console"
}

set_kiosk() {
  echo "Switching Display to: Graphical Kiosk..."
  mkdir -p /etc/systemd/system/getty@tty7.service.d
  cat << 'SYSTEMD_EOF' > "$OVERRIDE_FILE"
[Service]
ExecStart=
ExecStart=-/usr/bin/xinit /usr/local/share/nems/nems-scripts/nems-kiosk.sh -- :0 vt7
Restart=always
RestartSec=5
StandardInput=tty
StandardOutput=tty
SYSTEMD_EOF
  systemctl daemon-reload
  systemctl restart getty@tty7.service
  chvt 7
  echo "Active Display: Kiosk"
}

toggle_screen() {
  if grep -q "nems-kiosk.sh" "$OVERRIDE_FILE" 2>/dev/null; then
    set_tty
  else
    set_kiosk
  fi
}

get_status() {
  if grep -q "nems-kiosk.sh" "$OVERRIDE_FILE" 2>/dev/null; then
    echo "Current Display Mode: Kiosk"
  else
    echo "Current Display Mode: TTY Console"
  fi
}

case "$1" in
  tty)
    set_tty
    ;;
  kiosk)
    set_kiosk
    ;;
  toggle)
    toggle_screen
    ;;
  status)
    get_status
    ;;
  *)
    echo "Usage: sudo nems-screen {tty|kiosk|toggle|status}"
    exit 1
    ;;
esac
