mirror of
https://github.com/thetechprepper/emcomm-tools-os-community.git
synced 2026-09-17 15:41:44 -04:00
79 lines
2.2 KiB
Bash
Executable File
79 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Author : Gaston Gonzalez
|
|
# Date : 6 November 2024
|
|
# Purpose : Configures the system for a specific mode of operation
|
|
|
|
# TODO check for call, radio, audio
|
|
# TODO show current mode (delegate to et-system-info to align with Conky)
|
|
# TODO Add better detection between startup services / apps
|
|
|
|
MODE_ID_NONE="none"
|
|
MODE_ID_APRS_DIGIPEATER="aprs-digipeater"
|
|
MODE_ID_APRS_CLIENT="aprs-client"
|
|
MODE_ID_WINLINK_ARDOP="winlink-ardop"
|
|
MODE_ID_WINLINK_PACKET="winlink-packet"
|
|
|
|
# 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-ardop
|
|
systemctl --user stop et-service-direwolf-simple
|
|
systemctl --user stop et-service-direwolf-digipeater
|
|
}
|
|
|
|
options=()
|
|
options+=("${MODE_ID_NONE}" "No mode selected")
|
|
options+=("${MODE_ID_APRS_CLIENT}" "APRS Client (YAAC)")
|
|
options+=("${MODE_ID_APRS_DIGIPEATER}" "APRS Digipeater")
|
|
options+=("${MODE_ID_WINLINK_ARDOP}" "Winlink ARDOP")
|
|
options+=("${MODE_ID_WINLINK_PACKET}" "Winlink Packet")
|
|
|
|
SELECTED_MODE=$(dialog --clear --menu "Select a mode:" 20 60 10 "${options[@]}" 3>&1 1>&2 2>&3)
|
|
exit_status=$?
|
|
|
|
tput sgr 0 && clear
|
|
|
|
if [ $exit_status -eq 0 ]; then
|
|
|
|
stop_all_services
|
|
|
|
case ${SELECTED_MODE} in
|
|
${MODE_ID_NONE})
|
|
et-log "No mode selected"
|
|
;;
|
|
${MODE_ID_APRS_DIGIPEATER})
|
|
systemctl --user start et-service-direwolf-digipeater
|
|
;;
|
|
${MODE_ID_APRS_CLIENT})
|
|
systemctl --user start et-service-direwolf-simple
|
|
sleep 3
|
|
et-yaac start
|
|
;;
|
|
${MODE_ID_WINLINK_ARDOP})
|
|
systemctl --user start et-service-ardop
|
|
sleep 3
|
|
systemctl --user start et-service-winlink-ardop
|
|
sleep 3
|
|
min http://localhost:8080
|
|
;;
|
|
${MODE_ID_WINLINK_PACKET})
|
|
systemctl --user start et-service-direwolf-simple
|
|
sleep 3
|
|
systemctl --user start et-service-winlink-packet
|
|
sleep 3
|
|
min http://localhost:8080
|
|
;;
|
|
*)
|
|
et-log "Mode ${SELECTED_MODE} not yet supported"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
else
|
|
et-log "No mode selected"
|
|
exit 1
|
|
fi
|