#!/bin/sh
#
# /etc/rc.d/rc.piavpn
#
# Start/stop/restart Private Internet Access Daemon
#

PIA_BIN=/opt/piavpn/bin/pia-daemon
PIA_LOG=/var/log/piavpn.log
export LD_LIBRARY_PATH="/opt/piavpn/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}"

check_groups() {
  missing=""
  for grp in piavpn piahnsd; do
    if ! getent group "$grp" >/dev/null 2>&1; then
      missing="$missing $grp"
    fi
  done
  if [ -n "$missing" ]; then
    echo "Error: Missing required group(s):$missing"
    echo "Create them first, e.g.:"
    echo "  # groupadd piavpn"
    echo "  # groupadd piahnsd"
    echo
    echo "Then rerun:  /etc/rc.d/rc.piavpn start"
    exit 1
  fi
}

case "$1" in
  start)
    printf "Starting Private Internet Access daemon...\n"
    check_groups
    if [ -x "$PIA_BIN" ]; then
      "$PIA_BIN" >>"$PIA_LOG" 2>&1 &
    else
      echo "Error: $PIA_BIN not found or not executable."
    fi
  ;;
  stop)
    echo "Stopping Private Internet Access daemon..."
    pkill -f "$PIA_BIN" >/dev/null 2>&1
    echo "piavpn stopped."
  ;;
  restart)
    $0 stop
    $0 start
  ;;
  status)
    if pidof pia-daemon >/dev/null 2>&1; then
      echo "piavpn is running (pid $(pidof pia-daemon))."
    else
      echo "piavpn is not running."
    fi
  ;;
  *)
    echo "Usage: $0 {start|stop|restart|status}"
  ;;
esac
