mirror of
https://github.com/thetechprepper/emcomm-tools-os-community.git
synced 2026-09-17 15:41:44 -04:00
77 lines
2.1 KiB
Bash
Executable File
77 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Author : Gaston Gonzalez
|
|
# Date : 1 February 2025
|
|
# Updated : 7 June 2025
|
|
# Purpose : Common environment variables and functions
|
|
|
|
# Standardized device paths for supported hardware
|
|
export ET_DEVICE_AUDIO="/dev/et-audio"
|
|
export ET_DEVICE_CAT="/dev/et-cat"
|
|
export ET_DEVICE_GPS="/dev/et-gps"
|
|
export ET_DEVICE_SDR="/dev/et-sdr"
|
|
|
|
export ESC="\x1B"
|
|
export RED="${ESC}[1;31m"
|
|
export BLUE="${ESC}[1;34m"
|
|
export GREEN="${ESC}[1;32m"
|
|
export WHITE="${ESC}[97m"
|
|
export YELLOW="${ESC}[1;33m"
|
|
export NC="${ESC}[0m"
|
|
|
|
# Display an error message in the terminal
|
|
show-err-dialog() {
|
|
local message="$1"
|
|
dialog --title "Notification" --msgbox "$message" 8 60
|
|
}
|
|
|
|
# Display a notification message as a UI popup in the desktop
|
|
notify-user() {
|
|
notify-send -t 5000 --app-name="EmComm Tools" "$1"
|
|
}
|
|
|
|
exit_if_no_sdr() {
|
|
if [[ ! -e ${ET_DEVICE_SDR} ]]; then
|
|
et-log "No ${ET_DEVICE_SDR} detected."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
exit_on_service_failure() {
|
|
local systemd_unit_name="$1"
|
|
systemctl is-active --user --quiet "${systemd_unit_name}"
|
|
if [ $? -ne 0 ]; then
|
|
et-log "Can't start mode. ${systemd_unit_name} failed to start."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
start_and_wait_for_service() {
|
|
local timeout=15 # Total time to wait in seconds
|
|
local interval=2 # Interval between checks in seconds
|
|
local systemd_unit_name="$1"
|
|
local elapsed=0
|
|
|
|
et-log "Starting ${systemd_unit_name}..."
|
|
systemctl --user start ${systemd_unit_name}
|
|
|
|
et-log "Waiting for ${systemd_unit_name} to become active..."
|
|
|
|
while ! systemctl is-active --user --quiet "${systemd_unit_name}"; do
|
|
sleep "$interval"
|
|
elapsed=$((elapsed + interval))
|
|
if [ "$elapsed" -ge "$timeout" ]; then
|
|
et-log "Timeout reached. ${systemd_unit_name} failed to start."
|
|
exit 1
|
|
fi
|
|
et-log "Waiting for ${systemd_unit_name} to become active..."
|
|
done
|
|
|
|
# Some applications even when started still need a bit of extra time to be available.
|
|
# Add a short think time of 2 seconds. The ARDOP modem requies extra time.
|
|
sleep 2
|
|
|
|
# Do one more check to ensure that we are running, otherwise exit.
|
|
exit_on_service_failure ${systemd_unit_name}
|
|
}
|
|
|