#!/bin/bash # # Copyright (c) 2020 by Thomas A. Early N7TAE # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . trap ControlC INT ControlC () { echo "caught SIGINT" } UninstallReflector () { if [ -e $xlxserv ] || [ -e $xrfserv ]; then cd src sudo make uninstall cd .. fi if [ -e $ambserv ]; then cd ambed sudo make uninstall cd .. fi } InstallReflector () { if [ "$tcaddress" != none ]; then cd ambed sudo make install || read -p " to continue: " ans cd .. fi cd src if [[ "$callsign" == XLX* ]]; then if [ ! -e xlxd.whitelist ]; then cp ../config/xlxd.whitelist . fi if [ ! -e xlxd.blacklist ]; then cp ../config/xlxd.blacklist . fi if [ ! -e xlxd.interlink ]; then cp ../config/xlxd.interlink . fi if [[ "$g3support" == true ]] && [ ! -e xlxd.terminal ]; then cp ../config/xlxd.terminal . fi else if [ ! -e xrfd.whitelist ]; then cp ../config/xlxd.whitelist xrfd.whitelist fi if [ ! -e xrfd.blacklist ]; then cp ../config/xlxd.blacklist xrfd.blacklist fi if [ ! -e xrfd.interlink ]; then cp ../config/xlxd.interlink xrfd.interlink fi if [[ "$g3support" == true ]] && [ ! -e xrfd.terminal ]; then cp ../config/xlxd.terminal xrfd.terminal fi fi sudo make install || read -p " to continue: " ans cd .. } Clean () { cd src make clean cd ../ambed make clean cd .. } Compile () { local np np=`getconf _NPROCESSORS_ONLN` cd src make -j$np || read -p "" echo "co : Compile the system executable(s)" if [ -e $xlxserv ] || [ -e $xrfserv ]; then if [ -e $xlxserv ] && [ -e $xrfserv ]; then echo "ERROR: both xlxd and xrfd seem to be installed!" exit 1 elif [ -e $xlxserv ]; then echo "us : Uninstall the XLX reflector" echo "rl : Reflector log" if [ -e $ambserv ]; then echo "tl : Transcoder log" fi elif [ -e $xrfserv ]; then echo "us : Uninstall the XRF reflector" echo "rl : Reflector log" fi echo "rr : Reflector restart" if [ -e $ambserv ]; then echo "tr : Transcoder restart" fi else if [[ "$callsign" == XRF* ]] || [[ "$callsign" == XLX* ]]; then if [[ "$callsign" == XRF* ]] && [ -e src/xrfd ]; then echo "is : Install XRF reflector" elif [[ "$callsign" == XLX* ]] && [ -e src/xlxd ]; then if [[ "$tcaddress" == none ]]; then echo "is : Install XLX reflector without transcoder" else if [ -e ambed/ambed ]; then echo "is : Install XLX reflector and transcoder" fi fi fi fi fi echo echo "q : Quit" echo read -p "Please input - omit value to toggle a true/false : " key value garbage if [[ "$key" == ls* ]]; then cat reflector.cfg; echo read -p " to return to main menu: " ans elif [[ "$key" == us* ]]; then if [[ "$callsign" == XLX* ]] && [ -e $xlxserv ]; then UninstallReflector elif [[ "$callsign" == XRF* ]] && [ -e $xrfserv ]; then UninstallReflector fi elif [[ "$key" == is* ]]; then if [[ "$callsign" == XLX* ]] && [ -e src/xlxd ] && [ ! -e $xlxserv ] && [ ! -e $xrfserv ]; then InstallReflector elif [[ "$callsign" == XRF* ]] && [ -e src/xrfd ] && [ ! -e $xlxserv ] && [ ! -e $xrfserv ]; then InstallReflector fi elif [[ "$key" == gp* ]]; then echo git pull echo read -p " to continue: " ans elif [[ "$key" == br* ]]; then echo git checkout "$value" echo read -p " to continue: " ans elif [[ "$key" == rr* ]]; then if [[ "$callsign" == XLX* ]] && [ -e $xlxserv ]; then sudo systemctl restart xlxd elif [[ "$callsign" == XRF* ]] && [ -e $xrfserv ]; then sudo systemctl restart xrfd fi elif [[ "$key" == tr* ]] && [ -e $ambserv ]; then sudo systemctl restart ambed elif [[ "$key" == cl* ]]; then Clean elif [[ "$key" == co* ]]; then Compile elif [[ "$key" == tl* ]] && [ -e $ambserv ]; then sudo journalctl -u ambed -f elif [[ "$key" == rl* ]]; then if [ -e $xlxserv ]; then sudo journalctl -u xlxd -f elif [ -e $xrfserv ]; then sudo journalctl -u xrfd -f fi fi done exit 0