Files

57 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
#
# Author : Gaston Gonzalez
# Date : 11 October 2024
# Updated : 3 November 2024
# Purpose : A script for managaing plug-and-play radios
set -e
ACTIVE_RADIO="${ET_HOME}/conf/radios.d/active-radio.json"
NO_RADIO_ID="no-radio"
options=()
options+=("${NO_RADIO_ID}" "No radio")
while IFS= read -r radio; do
ID=$(cat $radio | jq -r .id)
VENDOR=$(cat $radio | jq -r .vendor)
MODEL=$(cat $radio | jq -r .model)
options+=("$ID" "$VENDOR $MODEL")
done < <(find $ET_HOME/conf/radios.d -type f | sort)
SELECTED_RADIO=$(dialog --clear --menu "Select a radio:" 20 60 10 "${options[@]}" 3>&1 1>&2 2>&3)
exit_status=$?
tput sgr 0 && clear
if [ $exit_status -eq 0 ]; then
# Special case to run without a radio configured
if [ ${SELECTED_RADIO} == ${NO_RADIO_ID} ]; then
[ -e ${ACTIVE_RADIO} ] && rm ${ACTIVE_RADIO}
echo "Set active radio to: $SELECTED_RADIO"
exit 0
fi
RADIO_CONF="${ET_HOME}/conf/radios.d/$SELECTED_RADIO.json"
[ -e ${ACTIVE_RADIO} ] && rm ${ACTIVE_RADIO}
ln -s ${RADIO_CONF} ${ACTIVE_RADIO}
echo "Set active radio to: $SELECTED_RADIO"
ID=$(cat ${ACTIVE_RADIO} | jq -r .id)
VENDOR=$(cat ${ACTIVE_RADIO} | jq -r .vendor)
MODEL=$(cat ${ACTIVE_RADIO} | jq -r .model)
printf "%-20s %-10s %-10s\n" "Radio ID" "Vendor" "Model"
printf "%-20s %-10s %-10s\n" $ID "$VENDOR" "$MODEL"
printf "\nConfiguration Notes\n"
cat ${ACTIVE_RADIO} | jq -r '.notes[] | "* \(.)"'
printf "\n** Plug in radio. If already connected, reconnect it.\n"
else
echo "No radio selected."
fi