#!/bin/bash
#
# Author   : Gaston Gonzalez
# Date     : 6 October 2024
# Updated  : 10 October 2024
# Purpose  : Utility script for dumping system information

function usage() {
  echo "Usage: $(basename $0) <command>"
  echo "  active-radio - Display model of active radio" 
  echo "  et-cat       - Is CAT control connected"
  echo "  et-gps       - Is the GPS connected"
  echo "  ip           - System IP address"
  echo "  release      - EmComm Tools Release"
}

if [ $# -ne 1 ]; then
  usage
  exit 1
fi

case $1 in
  active-radio)
    if [ -L  "${ET_HOME}/conf/radios.d/active-radio.json" ]; then
      cat /opt/emcomm-tools/conf/radios.d/active-radio.json | jq -r .model
    else
      echo "None"
    fi 
    ;;
  et-cat)

    # 1. Check if the symlink was created by the udev rules
    if [ -e /dev/et-cat ]; then 

      # 2. Check if the rigctl systemd unit is running properly
      systemctl status rigctld --no-pager > /dev/null 
      if [ $? -eq 0 ]; then
     
        # 3. Grab and format frequency 
        FREQ=$(timeout 1 rigctl -m 2 f)
        if [ $? -eq 0 ]; then
          printf "%'d MHz\n" "$FREQ" | sed 's|,|.|g'
        else
          echo "Connected. Can't access VFO"; 
        fi
      else
        echo "rigctld not running"
      fi
    else
      echo "Not connected"; 
    fi

    ;; 
  et-gps)
    if [ -e /dev/et-gps ]; then echo "Yes"; else echo "No"; fi
    ;; 
  ip)
    hostname -I
    ;;
  release)
    grep DISTRIB_DESCRIPTION /etc/lsb-release | sed 's|"||g' | awk '{print $1}' | cut -d"=" -f2
    ;;  
  *)
    echo "Command not supported."
    usage
    exit 1
    ;;
esac
