#!/bin/bash
#
# Author   : Gaston Gonzalez
# Date     : 12 November 2024
# Updated  : 7 February 2025
# Purpose  : Stops all EmComm Tools sound-based services (i.e. modems) and
#            amatuer radio applications to ensure a clean start for the next mode.

stop_pat() {
  PS_OUT=$(ps -ef | grep "[p]at http")

  if [[ $? -eq 0 ]]; then
    PAT_PID=$(ps -ef | grep "[p]at http" | awk '{print $2}')
    kill -9 ${PAT_PID}
  fi
}

# 1. Attempt to stop all EmComm Tools services regardless if they are running.
# 2. Stop the applications first, then the modems.
stop_all_services() {
  systemctl --user stop et-service-winlink-ardop
  systemctl --user stop et-service-winlink-packet
  systemctl --user stop et-service-winlink-native-packet
  systemctl --user stop et-service-ardop
  systemctl --user stop et-service-direwolf-300
  systemctl --user stop et-service-direwolf-9600
  systemctl --user stop et-service-direwolf-simple
  systemctl --user stop et-service-direwolf-aprs-digipeater
  systemctl --user stop et-service-direwolf-packet-digipeater

  # Stop VARA with a sledge hammer
  pkill et-winlink
  pkill et-vara
  pkill VARA 

  stop_pat
}

et-log "Stopping all services"
stop_all_services
