#functions file for find ardop #20200425 km4ack MYPATH=$HOME/patmenu2 MAIN=$MYPATH/./find2 CONFIG=$XDG_CONFIG_HOME/pat/config.json TEMP=$HOME/patmenu2/tempconfig.txt TODAY=$(date +%Y%m%d-%R) WHO=$(whoami) LASTDL=$(cat $MYPATH/ardop-list/ardoplist.txt | head -1) LOGO=$MYPATH/pmlogo.png source $MYPATH/config #-------------------------------- # MANUAL Download List #-------------------------------- DOWNLIST(){ $MYPATH/getardoplist $MAIN & exit } #-------------------------------- # AUTO Download List #-------------------------------- AUTODOWN(){ FILE=/run/user/$UID/cronbkup.txt crontab -l > $FILE HOURS=Disable,At-Boot,00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23 MINS=00,15,30,45 TEST=$(yad --center --wrap --width=350 --title="Auto Download" --text-align=center \ --text="Please choose the time you would like to download the gateway list everyday" \ --image $LOGO --window-icon=$LOGO --image-on-top \ --button="Update:2" \ --button="Cancel:1" \ --form --separator="," --item-separator="," \ --field="Choose the hour":CB $HOURS \ --field="Choose the minutes":CB $MINS \ ) rc=$? if [[ $rc -eq 2 ]]; then echo "Updating Cron" HOUR=$(echo $TEST | awk -F ',' '{print $1}') MIN=$(echo $TEST | awk -F ',' '{print $2}') sed -i '/getardoplist/d' $FILE if [ $HOUR = 'At-Boot' ]; then echo "@reboot sleep 10 && $MYPATH/.getardoplist-cron" >> $FILE crontab $FILE echo "Your crontab has been updated. The gateway list" echo "will be downloaded daily at "$HOUR":"$MIN" hours" yad --center --timeout=3 --timeout-indicator=top --no-buttons --text="Auto Download set for $HOUR:$MIN daily" \ --image $LOGO --window-icon=$LOGO --image-on-top $MAIN & rm $FILE exit elif [ $HOUR = 'Disable' ]; then sed -i s'/getardoplist-cron/d' $FILE crontab $FILE yad --center --timeout=3 --timeout-indicator=top --no-buttons --text="Auto Download Disabled" \ --image $LOGO --window-icon=$LOGO --image-on-top $MAIN & exit else echo "$MIN $HOUR * * * $MYPATH/.getardoplist-cron" >> $FILE #echo $MIN" "$HOUR" * * * $MYPATH/.getardoplist-cron" >> $FILE crontab $FILE echo echo "Your crontab has been updated. The gateway list" echo "will be downloaded daily at "$HOUR":"$MIN" hours" yad --center --timeout=3 --timeout-indicator=top --no-buttons --text="Auto Download set for $HOUR:$MIN daily" \ --image $LOGO --window-icon=$LOGO --image-on-top $MAIN & rm $FILE exit fi elif [[ $rc -eq 1 ]]; then echo "BYE" $MAIN & exit fi } #-------------------------------- # GRID SEARCH #-------------------------------- GRIDSEARCH(){ OUTFILE=/run/user/$UID/tempardoplist.txt CONFIG=$XDG_CONFIG_HOME/pat/config.json TEMP=/run/user/$UID/tempconfig.txt ARDOPLIST=$MYPATH/ardop-list VARALIST=$MYPATH/vara-list WHO=$(whoami) source $MYPATH/config #patmenu config file #check to make sure user has downloaded if [ ! -d "$MYPATH/ardop-list/" ]; then yad --title="No List" --width=400 --height=100 \ --image $LOGO --window-icon=$LOGO --image-on-top --text-align=center \ --center --form --text="\r\rGateway list has NOT been downloaded.\rPlease download now\rRecommend setting auto download time" \ --button="Download":2 BUT=$? if [ $BUT = 2 ]; then $MYPATH/getardoplist $MAIN & exit elif [ $BUT = 252 ]; then exit fi fi SEARCHMENU(){ #MENU BANDS="20|30|40|80|2M-70CM" SEARCH=$(yad --form --width=400 --text="Find Winlink Gateways" --text-align=center --center --title="Find ARDOP" --text-align=center \ --separator="|" --item-separator="|" \ --image=$LOGO --window-icon=$LOGO --image-on-top \ --field="Choose Modem":CB "VARA|ARDOP" \ --field="Grid to Search" "EM" \ --field="Band to Search":CB "$BANDS" \ --button="Search":2 \ --button="Cancel":1) QUIT=$? MODEM=$(echo $SEARCH | awk -F "|" '{print $1}') GRID=$(echo $SEARCH | awk -F "|" '{print $2}') GRID=$(echo "${GRID^^}") BAND=$(echo $SEARCH | awk -F "|" '{print $3}') echo "Grid search is $GRID" echo "Band is $BAND" if [ $QUIT = 1 ]; then $MAIN & exit elif [ $QUIT = 252 ]; then exit fi ##############PACKET SEARCH###################### if [ $QUIT = 2 ] && [ "$BAND" = '2M-70CM' ]; then #########START PACKET SECTION###################### FILE=$MYPATH/ardop-list/packet.txt TEMP=/run/user/$UID/temppacket.txt TEMP1=/run/user/$UID/templist.txt TEMP2=/run/user/$UID/tempalias.txt echo "Grid search is $GRID" cat $FILE | egrep -i $GRID[[:digit:]]{2} | tee "$TEMP" > /dev/null 2>&1 INFO=$(PARSER='OFS="\n" {print $1, $2, $3, $4, $5, $6, $7, $9, $11}' MYTEMP=$TEMP2 tail -1000 $TEMP | awk "$PARSER" | \ yad --title="Search Results" --width=1100 --height=500 \ --image $LOGO --window-icon=$LOGO --image-on-top --multiple \ --center --list --text="Search Results" \ --column Call --column Grid --column Dist \ --column Azm --column Mode --column Speed \ --column Dial-Freq \ --column Center-Freq --column Shortcut \ --button=gtk-close \ --button="Add Alias":2 > $MYTEMP) BUT=$? if [ "$BUT" = 2 ];then CALL=$(echo $INFO | awk -F "|" '{print $1}') SC=$(echo $INFO | awk -F "|" '{print $9}') FREQ=$(echo $SC | sed 's/.*=//') if [ $RIGCONTROL = 'no' ]; then SC=$(echo $SC | sed 's/[?].*$//') fi while read LINE; do CALL=$(echo $LINE | awk -F "|" '{print $1}') SC=$(echo $LINE | awk -F "|" '{print $9}') FREQ=$(echo $SC | sed 's/.*=//') if [ $RIGCONTROL = 'no' ]; then SC=$(echo $SC | sed 's/[?].*$//') fi SC=$(echo $SC | sed 's/packet/ax25/') jq '.connect_aliases += {'\""$CALL-$BAND"M"-$FREQ"\"' : '\"$SC\"'}' $CONFIG > $TEMP cp $TEMP $CONFIG rm $TEMP done < $TEMP2 sudo killall pat sudo systemctl start pat@$WHO yad --title="ADDED" --width=300 --height=100 \ --image $LOGO --window-icon=$LOGO --image-on-top \ --center --form --text="$CALL-$FREQ added to Pat Winlink\rRefresh Pat Mailbox Window\rto view changes" \ --button=gtk-ok SEARCHMENU fi SEARCHMENU fi ##############END PACKET SECTION################ #determine which modem was chosen if [ "$MODEM" = 'ARDOP' ]; then #############ARDOP SEARCH#################### OUTFILE2=/run/user/$UID/tempardop2.txt if [ $BAND = 20 ];then FILE=$ARDOPLIST/20mardoplist.txt cat $FILE | egrep -i $GRID[[:digit:]]{2} | tee "$OUTFILE" > /dev/null 2>&1 sed -i 's/&/&/g' $OUTFILE > /dev/null 2>&1 elif [ $BAND = 30 ];then FILE=$ARDOPLIST/30mardoplist.txt cat $FILE | egrep -i $GRID[[:digit:]]{2} | tee "$OUTFILE" > /dev/null 2>&1 sed -i 's/&/&/g' $OUTFILE > /dev/null 2>&1 elif [ $BAND = 40 ];then FILE=$ARDOPLIST/40mardoplist.txt cat $FILE | egrep -i $GRID[[:digit:]]{2} | tee "$OUTFILE" > /dev/null 2>&1 sed -i 's/&/&/g' $OUTFILE > /dev/null 2>&1 elif [ $BAND = 80 ];then FILE=$ARDOPLIST/80mardoplist.txt cat $FILE | egrep -i $GRID[[:digit:]]{2} | tee "$OUTFILE" > /dev/null 2>&1 sed -i 's/&/&/g' $OUTFILE > /dev/null 2>&1 echo "80 done" fi INFO=$(PARSER='OFS="\n" {print $1, $2, $3, $4, $5, $6, $7, $9, $11}' MYTEMP=/run/user/$UID/mytemptestardoplist tail -50 $OUTFILE | awk "$PARSER" | \ yad --title="Search Results" --width=1100 --height=500 \ --image $LOGO --window-icon=$LOGO --image-on-top --multiple \ --center --list --text="Search Results" \ --column Call --column Grid --column Dist \ --column Azm --column Mode --column Speed \ --column Dial-Freq \ --column Center-Freq --column Shortcut \ --button=gtk-close \ --button="Add Alias":2 > $MYTEMP) BUT=$? if [ "$BUT" = 2 ];then CALL=$(echo $INFO | awk -F "|" '{print $1}') SC=$(echo $INFO | awk -F "|" '{print $9}') FREQ=$(echo $SC | sed 's/.*=//') if [ $RIGCONTROL = 'no' ]; then SC=$(echo $SC | sed 's/[?].*$//') fi while read LINE; do CALL=$(echo $LINE | awk -F "|" '{print $1}') SC=$(echo $LINE | awk -F "|" '{print $9}' | sed 's/\&/\&/') FREQ=$(echo $SC | sed 's/.*=//') if [ $RIGCONTROL = 'no' ]; then SC=$(echo $SC | sed 's/[?].*$//') fi jq '.connect_aliases += {'\""$CALL-$BAND"M"-""ARDOP"\"' : '\"$SC\"'}' $CONFIG > $TEMP cp $TEMP $CONFIG rm $TEMP done < /run/user/$UID/mytemptestardoplist sudo killall pat sudo systemctl start pat@$WHO if [ -z "$CALL" ]; then yad --title="No Selection" --width=300 --height=100 \ --image $LOGO --window-icon=$LOGO --image-on-top \ --center --form --text="No station was selected\r Please try again" \ --button=gtk-ok $MAIN & exit fi yad --title="ADDED" --width=300 --height=100 \ --image $LOGO --window-icon=$LOGO --image-on-top \ --center --form --text="Alias added to Pat Winlink\rRefresh Pat Mailbox Window\rto view changes" \ --button=gtk-ok SEARCHMENU fi elif [ "$MODEM" = 'VARA' ]; then #############VARA SEARCH#################### OUTFILE2=/run/user/$UID/tempardop2.txt if [ $BAND = 20 ];then FILE=$VARALIST/20mvaralist.txt cat $FILE | egrep -i $GRID[[:digit:]]{2} | tee "$OUTFILE" > /dev/null 2>&1 sed -i 's/&/&/g' $OUTFILE > /dev/null 2>&1 elif [ $BAND = 30 ];then FILE=$VARALIST/30mvaralist.txt cat $FILE | egrep -i $GRID[[:digit:]]{2} | tee "$OUTFILE" > /dev/null 2>&1 sed -i 's/&/&/g' $OUTFILE > /dev/null 2>&1 elif [ $BAND = 40 ];then FILE=$VARALIST/40mvaralist.txt cat $FILE | egrep -i $GRID[[:digit:]]{2} | tee "$OUTFILE" > /dev/null 2>&1 sed -i 's/&/&/g' $OUTFILE > /dev/null 2>&1 elif [ $BAND = 80 ];then FILE=$VARALIST/80mvaralist.txt cat $FILE | egrep -i $GRID[[:digit:]]{2} | tee "$OUTFILE" > /dev/null 2>&1 sed -i 's/&/&/g' $OUTFILE > /dev/null 2>&1 echo "80 done" fi #remove outfile2 if it exist if [ -f $OUTFILE2 ]; then rm $OUTFILE2 fi #add speed to line if not in list already while read -r line do CHECK=$(echo $line | awk '{print $6}') if [ "$CHECK" = 500 ] || [ "$CHECK" = 2750 ]; then echo $line >> $OUTFILE2 else echo $line | sed 's/VARA/VARA 500/' >> $OUTFILE2 fi done < $OUTFILE INFO=$(PARSER='OFS="\n" {print $1, $2, $3, $4, $5, $6, $7, $9, $11}' MYTEMP=/run/user/$UID/mytemptestardoplist tail -50 $OUTFILE2 | awk "$PARSER" | \ yad --title="Search Results" --width=1100 --height=500 \ --image $LOGO --window-icon=$LOGO --image-on-top --multiple \ --center --list --text="Search Results" \ --column Call --column Grid --column Dist \ --column Azm --column Mode --column Speed \ --column Dial-Freq \ --column Center-Freq --column Shortcut \ --button=gtk-close \ --button="Add Alias":2 > $MYTEMP) BUT=$? if [ "$BUT" = 2 ];then CALL=$(echo $INFO | awk -F "|" '{print $1}') SC=$(echo $INFO | awk -F "|" '{print $9}') FREQ=$(echo $SC | sed 's/.*=//') if [ $RIGCONTROL = 'no' ]; then SC=$(echo $SC | sed 's/[?].*$//') fi while read LINE; do CALL=$(echo $LINE | awk -F "|" '{print $1}') SC=$(echo $LINE | awk -F "|" '{print $9}' | sed 's/\&/\&/') FREQ=$(echo $SC | sed 's/.*=//') if [ $RIGCONTROL = 'no' ]; then SC=$(echo $SC | sed 's/[?].*$//') fi jq '.connect_aliases += {'\""$CALL-$BAND"M"-""VARA"\"' : '\"$SC\"'}' $CONFIG > $TEMP cp $TEMP $CONFIG rm $TEMP done < /run/user/$UID/mytemptestardoplist sudo killall pat sudo systemctl start pat@$WHO if [ -z "$CALL" ]; then yad --title="No Selection" --width=300 --height=100 \ --image $LOGO --window-icon=$LOGO --image-on-top \ --center --form --text="No station was selected\r Please try again" \ --button=gtk-ok $MAIN & exit fi yad --title="ADDED" --width=300 --height=100 \ --image $LOGO --window-icon=$LOGO --image-on-top \ --center --form --text="Alias added to Pat Winlink\rRefresh Pat Mailbox Window\rto view changes" \ --button=gtk-ok SEARCHMENU fi fi #close modem if/then statement SEARCHMENU } SEARCHMENU } #-------------------------------- # Open Map #-------------------------------- MAP(){ if [ "$MAP" = "usa" ]; then MAP=$MYPATH/grid-map.pdf elif [ "$MAP" = "world" ]; then MAP=$MYPATH/worldgridmap.pdf fi xdg-open $MAP } #-------------------------------- # Alternate Grid Download #-------------------------------- #THIS FUNCTION DEPRECATED BUT LEFT FOR REFERENCE 11MARCH2022 #make new dir in pat menu dir if needed mkdir -p $HOME/patmenu2/alt-ardop-list ALTGRID(){ #check internet connection echo "Please wait while we check your internet connection" echo "This may take up to a minute" wget -q --tries=5 --timeout=10 --spider http://google.com #| yad --center --progress --pulsate --timeout-indicator=top --auto-close --no-buttons --text="Checking internet connection" if [[ $? -eq 0 ]]; then #yad --center --timeout=2 --timeout-indicator=top --no-buttons --text="Connection Detected" & echo "Connection detected" else yad --center --timeout=3 --timeout-indicator=top --no-buttons --text="You are not connected to the internet" exit fi #Create temp config file to use for downloads MAINFILE=$XDG_CONFIG_HOME/pat/config.json TEMPFILE=/run/user/$UID/config.json cp $MAINFILE $TEMPFILE GRID=$(yad --form --width=420 --text-align=center --center --title="Pat Log In/Out" --text-align=center \ --image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \ --text="Pat Log In/Out by KM4ACK" \ --field="Alt Grid" "" \ --button="Download Gateway List":2 \ --button="Cancel":1) BUT=$? if [ $BUT = 252 ]; then exit elif [ $BUT = 1 ]; then $MAIN & exit fi GRID=$(echo $GRID | awk -F "|" '{print $1}') sed -i "s/\"locator\":.*/\"locator\": \"$GRID\",/" $TEMPFILE #Download the files FOLDER=$HOME/patmenu2/alt-ardop-list/ardop-list-$GRID mkdir -p $FOLDER echo "downloading....please wait" DL(){ pat --config /run/user/$UID/config.json rmslist -s --band 80m --mode ardop --force-download > $FOLDER/80mardoplist.txt pat --config /run/user/$UID/config.json rmslist -s --band 40m --mode ardop --force-download > $FOLDER/40mardoplist.txt pat --config /run/user/$UID/config.json rmslist -s --band 30m --mode ardop --force-download > $FOLDER/30mardoplist.txt pat --config /run/user/$UID/config.json rmslist -s --band 20m --mode ardop --force-download > $FOLDER/20mardoplist.txt pat --config /run/user/$UID/config.json rmslist -s --mode packet --force-download > $FOLDER/packet.txt yad --center --timeout=2 --timeout-indicator=top --no-buttons --text="Downloads Done" & } DL | yad --center --progress --pulsate --auto-close --no-buttons --text-align=center \ --text="Downloading....This takes ~30 seconds\rDO NOT CLOSE THIS WINDOW\rDoing so will abort the download." rm $TEMPFILE $MAIN & exit } #-------------------------------- # Load Alternate Grid List #-------------------------------- #THIS FUNCTION DEPRECATED BUT LEFT FOR REFERENCE 11MARCH2022 LOADALTGRID(){ OUTFILE=/run/user/$UID/alt-grid.list ls $HOME/patmenu2/alt-ardop-list > $OUTFILE LIST=$(PARSER='OFS="\n" {print $1}' tail -10 $OUTFILE | awk "$PARSER" | \ yad --title="Load Packet List" --width=300 --height=500 \ --image $LOGO --window-icon=$LOGO --image-on-top \ --center --list --text="Choose List to Load" \ --column List-to-Load \ --button="Cancel":1 \ --button="Load List":2 \ --button="Delete All Lists":3) BUT=$? LIST=$(echo $LIST | awk -F "|" '{print $1}') echo $LIST if [ $BUT = 252 ]; then exit elif [ $BUT = 1 ]; then $MAIN & exit elif [ $BUT = 3 ]; then yad --title="Delete List" --width=100 --height=100 \ --image $LOGO --window-icon=$LOGO --image-on-top \ --center --text="Are You Sure?" \ --button="YES":1 \ --button="NO":2 BUT=$? if [ $BUT = 1 ]; then rm -rf $HOME/patmenu2/alt-ardop-list yad --center --timeout=2 --timeout-indicator=top --no-buttons --text="Alt Lists Deleted" $MAIN & exit fi $MAIN & exit fi #backup home grid before loading alt grid HOMEGRID=$(grep locator $XDG_CONFIG_HOME/pat/config.json | sed 's/"//g;s/locator://;s/,//;s/ //g') if [ ! -d $HOME/patmenu2/alt-ardop-list/ardop-list-$HOMEGRID ]; then echo "Backing up home grid" mkdir -p $HOME/patmenu2/alt-ardop-list/ardop-list-$HOMEGRID cp $HOME/patmenu2/ardop-list/* $HOME/patmenu2/alt-ardop-list/ardop-list-$HOMEGRID fi #load alt grid cp -r $HOME/patmenu2/alt-ardop-list/$LIST/* $HOME/patmenu2/ardop-list/ LIST=$(echo $LIST | sed 's/ardop-list-//') yad --center --timeout=2 --timeout-indicator=top --no-buttons --text="Grid $LIST Loaded" echo "GRID=$LIST" > $HOME/patmenu2/.grid $MAIN & exit } #-------------------------------- # Recalculate Distance & Bearings #-------------------------------- NEWCALC(){ #Function to update the distance and bearing between #your current grid and the winlink gateways. #this is necessary because the calculations are initially #based on the grid in the pat config file at the time the #list is downloaded. #10MARCH2022 KM4ACK DIR=/run/user/$UID TMPFILE=$DIR/tempfile TMPFILE2=$DIR/tempfile2 TMPFILE3=$DIR/tempfile3 MYGRID=$(cat /run/user/$UID/gridinfo.txt | cut -c1-6) #backup current ARDOP lists BKDIR=$MYPATH/ardop-list/bkup-`date +%F.%H%M` mkdir -p $BKDIR cp -r $HOME/patmenu2/ardop-list/*.txt $BKDIR/ #backup current VARA lists BKDIRVARA=$MYPATH/vara-list/bkup-`date +%F.%H%M` mkdir -p $BKDIRVARA cp -r $HOME/patmenu2/vara-list/*.txt $BKDIRVARA/ MYGRID=$(yad --form --width=450 --text="Recalculate Distance and Bearings to Gateways\rThis takes 5-6 minutes to complete" \ --text-align=center --center --title="Recalculate" --text-align=center --separator="|" --item-separator="|" \ --image=$LOGO --window-icon=$LOGO --image-on-top \ --field="Current Grid Square" "$MYGRID" \ --button="Recalculate":2 \ --button="Cancel":1) BUT=$? MYGRID=`echo $MYGRID | awk -F "|" '{print $1}'` if [ $BUT = 252 ]; then exit elif [ $BUT = 1 ]; then $MAIN & exit fi #create file that has grid variable used in calculations touch $HOME/patmenu2/ardop-list/grid.txt echo "GRID=$MYGRID" > $HOME/patmenu2/ardop-list/grid.txt echo "LASTDL=Recalculated `date`" >> $HOME/patmenu2/ardop-list/grid.txt MAIN(){ echo "Recalculating ARDOP 20M List" RECALC 20mardoplist.txt | yad --center --progress --pulsate --auto-close --no-buttons --text-align=center --title="Recalculate" \ --text="Recalculating ARDOP 20M List\rDO NOT CLOSE THIS WINDOW\rDoing so will abort the process\rand leave you with a corrupt list." echo "Recalculating ARDOP 30M List" RECALC 30mardoplist.txt | yad --center --progress --pulsate --auto-close --no-buttons --text-align=center --title="Recalculate" \ --text="Recalculating ARDOP 30M List\rDO NOT CLOSE THIS WINDOW\rDoing so will abort the process\rand leave you with a corrupt list." echo "Recalculating ARDOP 40M List" RECALC 40mardoplist.txt | yad --center --progress --pulsate --auto-close --no-buttons --text-align=center --title="Recalculate" \ --text="Recalculating ARDOP 40M List\rDO NOT CLOSE THIS WINDOW\rDoing so will abort the process\rand leave you with a corrupt list." echo "Recalculating ARDOP 80M List" RECALC 80mardoplist.txt | yad --center --progress --pulsate --auto-close --no-buttons --text-align=center --title="Recalculate" \ --text="Recalculating ARDOP 80M List\rDO NOT CLOSE THIS WINDOW\rDoing so will abort the process\rand leave you with a corrupt list." echo "Recalculating Packet list" RECALC packet.txt | yad --center --progress --pulsate --auto-close --no-buttons --text-align=center --title="Recalculate" \ --text="Recalculating Packet List\rDO NOT CLOSE THIS WINDOW\rDoing so will abort the process\rand leave you with a corrupt list." echo "Recalculating Vara 20M List" RECALCVARA 20mvaralist.txt | yad --center --progress --pulsate --auto-close --no-buttons --text-align=center --title="Recalculate" \ --text="Recalculating VARA 20M List\rDO NOT CLOSE THIS WINDOW\rDoing so will abort the process\rand leave you with a corrupt list." echo "Recalculating Vara 30M List" RECALCVARA 30mvaralist.txt | yad --center --progress --pulsate --auto-close --no-buttons --text-align=center --title="Recalculate" \ --text="Recalculating VARA 30M List\rDO NOT CLOSE THIS WINDOW\rDoing so will abort the process\rand leave you with a corrupt list." echo "Recalculating Vara 40M List" RECALCVARA 40mvaralist.txt | yad --center --progress --pulsate --auto-close --no-buttons --text-align=center --title="Recalculate" \ --text="Recalculating VARA 40M List\rDO NOT CLOSE THIS WINDOW\rDoing so will abort the process\rand leave you with a corrupt list." echo "Recalculating Vara 80M List" RECALCVARA 80mvaralist.txt | yad --center --progress --pulsate --auto-close --no-buttons --text-align=center --title="Recalculate" \ --text="Recalculating VARA 80M List\rDO NOT CLOSE THIS WINDOW\rDoing so will abort the process\rand leave you with a corrupt list." yad --center --timeout=2 --timeout-indicator=top --no-buttons --text="New Calculations Complete" } RECALC(){ #This section recalculates the ARDOP lists and 2M Packet list FILE=$HOME/patmenu2/ardop-list/$1 #check for and remove existing temp file if [ -f $TMPFILE3 ]; then rm $TMPFILE3 fi #create temp list to work with and remove headers/blank lines cp $FILE $TMPFILE sed -i 's/.*information...//;s/.*succeeded.//;s/.*url//' $TMPFILE sed -i '/^$/d' $TMPFILE #read file, calculate new distance, and update while read LINE; do GRID=`echo $LINE | awk '{print $2}' | sed 's/\[//;s/\]//'` DISTANCE=`echo $LINE | awk '{print $3 }'` BEARING=`echo $LINE | awk '{print $4 }'` CALC=`/usr/bin/wwl $MYGRID $GRID` NEWDISTANCE=`echo $CALC | awk '{print $2}'` NEWBEARING=`echo $CALC | awk '{print $5}'` echo $LINE | sed "s/$DISTANCE/$NEWDISTANCE/;s/$BEARING/$NEWBEARING/" >> $TMPFILE2 done < $TMPFILE rm $TMPFILE #pad distance with zeros for sorting while read LINE do DISTANCE=$(echo $LINE | awk '{ print $3 }') NEWDISTANCE=$(echo $LINE | awk '{ print $3 }' | sed -e :a -e 's/^.\{1,4\}$/0&/;ta') echo $LINE | sed "s/$DISTANCE/$NEWDISTANCE/" >> $TMPFILE3 done < $TMPFILE2 rm $TMPFILE2 #sort list by distance sort -k3 -o $TMPFILE3 $TMPFILE3 cp $TMPFILE3 $HOME/patmenu2/ardop-list/$1 } ###########VARA Recalculate####################### RECALCVARA(){ #This section recalculates the VARA lists. FILE=$HOME/patmenu2/vara-list/$1 #check for and remove existing temp file if [ -f $TMPFILE3 ]; then rm $TMPFILE3 fi #create temp list to work with and remove headers/blank lines cp $FILE $TMPFILE sed -i 's/.*information...//;s/.*succeeded.//;s/.*url//' $TMPFILE sed -i '/^$/d' $TMPFILE #read file, calculate new distance, and update while read LINE; do GRID=`echo $LINE | awk '{print $2}' | sed 's/\[//;s/\]//'` DISTANCE=`echo $LINE | awk '{print $3 }'` BEARING=`echo $LINE | awk '{print $4 }'` CALC=`/usr/bin/wwl $MYGRID $GRID` NEWDISTANCE=`echo $CALC | awk '{print $2}'` NEWBEARING=`echo $CALC | awk '{print $5}'` echo $LINE | sed "s/$DISTANCE/$NEWDISTANCE/;s/$BEARING/$NEWBEARING/" >> $TMPFILE2 done < $TMPFILE rm $TMPFILE #pad distance with zeros for sorting while read LINE do DISTANCE=$(echo $LINE | awk '{ print $3 }') NEWDISTANCE=$(echo $LINE | awk '{ print $3 }' | sed -e :a -e 's/^.\{1,4\}$/0&/;ta') echo $LINE | sed "s/$DISTANCE/$NEWDISTANCE/" >> $TMPFILE3 done < $TMPFILE2 rm $TMPFILE2 #sort list by distance sort -k3 -o $TMPFILE3 $TMPFILE3 cp $TMPFILE3 $HOME/patmenu2/vara-list/$1 } #call main function MAIN #return to pat menu $MAIN }