1
0
mirror of https://github.com/km4ack/patmenu2.git synced 2025-05-15 22:30:11 -07:00
patmenu2/manage-menu-functions
2022-04-05 08:52:52 -05:00

350 lines
10 KiB
Plaintext

MYPATH=$HOME/patmenu2
MAIN=$MYPATH/./manage-menu
LOGO=$MYPATH/pmlogo.png
NEWCONFIG(){
source $MYPATH/config
CONFIGTMP=$MYPATH/config.temp
SETTINGS=$(yad --form --width=600 --text-align=center --center --title="Pat Menu Settings" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="<b>Pat Menu Settings</b> by KM4ACK" \
--field="Call Sign" "$MYCALLSIGN" \
--field="MAP":CB "usa|world" \
--field="Rig Control":CB "no|yes" \
--field="ARDOP Command" "$ARDOP" \
--field="ARDOP GUI Command" "$ARDOPGUI" \
--field="Direwolf Command" "$DIREWOLF" \
--field="KISS Command" "$KISS" \
--field="AX25 Port" "$AXP" \
--field="Rig Control Command" "$RIG" \
--field="HF Mode for Radio" "$MODEHF" \
--field="2M Mode for Radio" "$MODE2M" \
--field="Pat Port" "$PORT" \
--field="Log File Location" "$LOG" \
--field="AmRRON":CB "no|yes" \
--field="Custom Warning":CB "no|yes" \
--field="Warning Message" "$WARNMSG" \
--button="Create":2 \
--button="Cancel":1)
BUT=$?
if [ $BUT = 1 ]; then
$MAIN
elif [ $BUT = 252 ]; then
exit
elif [ $BUT = 2 ]; then
MYCALLSIGN=$(echo $SETTINGS | awk -F "|" '{print $1}')
MAP=$(echo $SETTINGS | awk -F "|" '{print $2}')
RIGCONTROL=$(echo $SETTINGS | awk -F "|" '{print $3}')
ARDOP=$(echo $SETTINGS | awk -F "|" '{print $4}')
ARDOPGUI=$(echo $SETTINGS | awk -F "|" '{print $5}')
DIREWOLF=$(echo $SETTINGS | awk -F "|" '{print $6}')
KISS=$(echo $SETTINGS | awk -F "|" '{print $7}')
AXP=$(echo $SETTINGS | awk -F "|" '{print $8}')
RIG=$(echo $SETTINGS | awk -F "|" '{print $9}')
MODEHF=$(echo $SETTINGS | awk -F "|" '{print $10}')
MODE2M=$(echo $SETTINGS | awk -F "|" '{print $11}')
PORT=$(echo $SETTINGS | awk -F "|" '{print $12}')
LOG=$(echo $SETTINGS | awk -F "|" '{print $13}')
AMRRON=$(echo $SETTINGS | awk -F "|" '{print $14}')
WARN=$(echo $SETTINGS | awk -F "|" '{print $15}')
WARNMSG=$(echo $SETTINGS | awk -F "|" '{print $16}')
NAME=$(yad --form --width=600 --text-align=center --center --title="Name?" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="<b>Pat Menu Settings</b> by KM4ACK" \
--field="New Config Name")
BUT=$?
if [ $BUT = 1 ]; then
$MAIN &
exit
else
NEWCONFIG=$(echo $NAME | awk -F "|" '{print $1}')
fi
#NEWCONFIG=$(echo $SETTINGS | awk -F "|" '{print $15}')
#NEWCONFIG=$(echo $NEWCONFIG | tr -d "[:blank:]")
NEWCONFIG=$(echo $NEWCONFIG | sed 's/ /./g')
NEWCONFIG=$NEWCONFIG.config
echo "#Config file for Pat Menu" > $CONFIGTMP
echo "#20200429 KM4ACK" >> $CONFIGTMP
echo "MYCALLSIGN=$MYCALLSIGN" >> $CONFIGTMP
echo "MAP=$MAP" >> $CONFIGTMP
echo "RIGCONTROL=$RIGCONTROL" >> $CONFIGTMP
echo "ARDOP=\"$ARDOP\"" >> $CONFIGTMP
echo "ARDOPGUI=\"$ARDOPGUI\"" >> $CONFIGTMP
echo "DIREWOLF=\"$DIREWOLF\"" >> $CONFIGTMP
echo "KISS=\"$KISS\"" >> $CONFIGTMP
echo "AXP=$AXP" >> $CONFIGTMP
echo "RIG=\"$RIG\"" >> $CONFIGTMP
echo "MODEHF=$MODEHF" >> $CONFIGTMP
echo "MODE2M=$MODE2M" >> $CONFIGTMP
echo "PORT=$PORT" >> $CONFIGTMP
echo "LOG=$LOG" >> $CONFIGTMP
echo "AMRRON=$AMRRON" >> $CONFIGTMP
echo "WARN=$WARN" >> $CONFIGTMP
echo "WARNMSG=\"$WARNMSG\"" >> $CONFIGTMP
CHECKFILE=$(ls $MYPATH | grep $NEWCONFIG)
if [ -z "$CHECKFILE" ];then
cp $CONFIGTMP $MYPATH/$NEWCONFIG
rm $CONFIGTMP
else
echo "FILE ALREADY EXISTS" ######################
yad --form --width=600 --text-align=center --center --title="Pat Menu Settings" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="\r\rFile already exist!\rOverwrite existing config file?" \
--button="Yes":2 \
--button="No":1
BUT=$?
if [ $BUT = 1 ]; then
$MAIN &
exit
elif [ $BUT = 2 ]; then
cp $CONFIGTMP $MYPATH/$NEWCONFIG
rm $CONFIGTMP
fi
fi
yad --title="Config Created" --width=400 --height=200 \
--image $LOGO --window-icon=$LOGO --image-on-top \
--center --text="$NEWCONFIG created\r\r<b>Don't forget to load the new config file</b>" \
--button=gtk-ok
$MAIN &
exit
fi
}
LOADCONFIG(){
OUTFILE=/run/user/$UID/configlist.tmp
ls $MYPATH/ | grep .config > $OUTFILE
INFO=$(PARSER='OFS="\n" {print $1}'
tail -10 $OUTFILE | awk "$PARSER" | \
yad --title="Load Config" --width=400 --height=500 \
--image $LOGO --window-icon=$LOGO --image-on-top \
--center --list --text="Choose Config File to load" \
--column Config-files \
--button="Cancel":1 \
--button="Load Config File":2)
BUT=$?
NEWCONFIG=$(echo $INFO | awk -F "|" '{print $1}')
echo $NEWCONFIG
echo $BUT
if [ $BUT = 252 ]; then
exit
elif [ $BUT = 1 ]; then
$MAIN
exit
elif [ $BUT = 2 ]; then
if [ -z $NEWCONFIG ]; then
$MAIN &
exit
else
cp $MYPATH/$NEWCONFIG $MYPATH/config
rm $OUTFILE
yad --title="Config Loaded" --width=400 --height=200 \
--image $LOGO --window-icon=$LOGO --image-on-top \
--center --text="$NEWCONFIG loaded" \
--button=gtk-ok
$MAIN &
exit
fi
fi
}
CURRENTCONFIG(){
source $MYPATH/config
CONFIGTMP=$MYPATH/config.temp
CONFIG=$MYPATH/config
if [ "$MAP" = 'usa' ]; then
MAP="usa|world"
else
MAP="world|usa"
fi
if [ "$RIGCONTROL" = 'yes' ]; then
RIGCONTROL="yes|no"
else
RIGCONTROL="no|yes"
fi
if [ "$AMRRON" = 'yes' ]; then
AMRRON="yes|no"
else
AMRRON="no|yes"
fi
if [ "$WARN" = 'yes' ]; then
WARN="yes|no"
else
WARN="no|yes"
fi
SETTINGS=$(yad --form --width=600 --text-align=center --center --title="Pat Menu Settings" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="<b>Pat Menu Settings</b> by KM4ACK" \
--field="Call Sign" "$MYCALLSIGN" \
--field="MAP":CB "$MAP" \
--field="Rig Control":CB "$RIGCONTROL" \
--field="ARDOP Command" "$ARDOP" \
--field="ARDOP GUI Command" "$ARDOPGUI" \
--field="Direwolf Command" "$DIREWOLF" \
--field="KISS Command" "$KISS" \
--field="AX25 Port" "$AXP" \
--field="Rig Control Command" "$RIG" \
--field="HF Mode for Radio" "$MODEHF" \
--field="2M Mode for Radio" "$MODE2M" \
--field="Pat Port" "$PORT" \
--field="Log File Location" "$LOG" \
--field="AmRRON":CB "$AMRRON" \
--field="Custom Warning":CB "$WARN" \
--field="Warning Message" "$WARNMSG" \
--button="Save As":3 \
--button="Update":2 \
--button="Cancel":1)
BUT=$?
if [ $BUT = 1 ]; then
$MAIN
elif [ $BUT = 252 ]; then
exit
elif [ $BUT = 2 ]; then
MYCALLSIGN=$(echo $SETTINGS | awk -F "|" '{print $1}')
MAP=$(echo $SETTINGS | awk -F "|" '{print $2}')
RIGCONTROL=$(echo $SETTINGS | awk -F "|" '{print $3}')
ARDOP=$(echo $SETTINGS | awk -F "|" '{print $4}')
ARDOPGUI=$(echo $SETTINGS | awk -F "|" '{print $5}')
DIREWOLF=$(echo $SETTINGS | awk -F "|" '{print $6}')
KISS=$(echo $SETTINGS | awk -F "|" '{print $7}')
AXP=$(echo $SETTINGS | awk -F "|" '{print $8}')
RIG=$(echo $SETTINGS | awk -F "|" '{print $9}')
MODEHF=$(echo $SETTINGS | awk -F "|" '{print $10}')
MODE2M=$(echo $SETTINGS | awk -F "|" '{print $11}')
PORT=$(echo $SETTINGS | awk -F "|" '{print $12}')
LOG=$(echo $SETTINGS | awk -F "|" '{print $13}')
AMRRON=$(echo $SETTINGS | awk -F "|" '{print $14}')
WARN=$(echo $SETTINGS | awk -F "|" '{print $15}')
WARNMSG=$(echo $SETTINGS | awk -F "|" '{print $16}')
echo "#Config file for Pat Menu" > $CONFIGTMP
echo "#20200429 KM4ACK" >> $CONFIGTMP
echo "MYCALLSIGN=$MYCALLSIGN" >> $CONFIGTMP
echo "MAP=$MAP" >> $CONFIGTMP
echo "RIGCONTROL=$RIGCONTROL" >> $CONFIGTMP
echo "ARDOP=\"$ARDOP\"" >> $CONFIGTMP
echo "ARDOPGUI=\"$ARDOPGUI\"" >> $CONFIGTMP
echo "DIREWOLF=\"$DIREWOLF\"" >> $CONFIGTMP
echo "KISS=\"$KISS\"" >> $CONFIGTMP
echo "AXP=$AXP" >> $CONFIGTMP
echo "RIG=\"$RIG\"" >> $CONFIGTMP
echo "MODEHF=$MODEHF" >> $CONFIGTMP
echo "MODE2M=$MODE2M" >> $CONFIGTMP
echo "PORT=$PORT" >> $CONFIGTMP
echo "LOG=$LOG" >> $CONFIGTMP
echo "AMRRON=$AMRRON" >> $CONFIGTMP
echo "WARN=$WARN" >> $CONFIGTMP
echo "WARNMSG=\"$WARNMSG\"" >> $CONFIGTMP
cp $CONFIGTMP $CONFIG
rm $CONFIGTMP
$MAIN &
exit
elif [ $BUT = 3 ]; then
NEWNAME=$(yad --form --width=600 --text-align=center --center --title="Name?" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="<b>Pat Menu Settings</b> by KM4ACK" \
--field="New Config Name")
BUT=$?
if [ $BUT = 1 ]; then
$MAIN & exit
elif [ $BUT = 252 ]; then
exit
fi
NEWNAME=$(echo $NEWNAME | awk -F "|" '{print $1}')
NEWNAME=$NEWNAME.config #add .config to filename
NEWNAME=$(echo $NEWNAME | sed 's/ /-/g') #remove spaces in file name
cp $CONFIG $HOME/patmenu2/$NEWNAME
yad --title="Config Created" --width=400 --height=200 \
--image $LOGO --window-icon=$LOGO --image-on-top \
--center --text="$NEWNAME created\r\r<b>Don't forget to load the new config file</b>" \
--button=gtk-ok
$MAIN &
exit
fi
}
DELETECONFIG(){
TEMPFILE=$MYPATH/config.tmp
FILES=$(ls $MYPATH | grep .config)
echo $FILES | awk 'BEGIN { OFS = "\n" }{ print $1, $2, $3, $4, $5, $6, $7, $8, $9, $10 }' > $TEMPFILE
CONFIG=$(PARSER='OFS="\n" {print $1}'
tail -50 $TEMPFILE | awk "$PARSER" | \
yad --title="Config Delete" --width=1100 --height=500 --separator=" " --item-separator="|" \
--image $LOGO --window-icon=$LOGO --image-on-top \
--center --list --text="Config Delete" \
--column Config-Files \
--button=gtk-close \
--button="Delete Config":2)
BUT=$?
if [ $BUT = 0 ]; then
$MAIN &
rm $TEMPFILE
exit
elif [ $BUT = 252 ]; then
rm $TEMPFILE
exit
fi
FILE=$(echo $CONFIG | awk -F "|" '{print $1}')
rm $MYPATH/$FILE
rm $TEMPFILE
yad --title="Deleted" --width=400 --height=100 \
--image $LOGO --window-icon=$LOGO --image-on-top --text-align=center \
--center --form --text="$FILE has been deleted" \
--button=gtk-ok
$MAIN &
exit
}
SOUND(){
CARD=$(arecord -l | grep card | awk '{print $2}' | sed 's/://')
DIRECARD=$(cat $HOME/direwolf.conf | grep ADEVICE | head -1 | awk '{print $2}' | sed 's/plughw://' | sed 's/,.*$//')
PATCARD=$(cat $HOME/patmenu2/config | grep ARDOP | head -1 | awk '{print $3}' | sed 's/plughw://' | sed 's/,.*$//')
sed -i "0,/$DIRECARD,0/{s//$CARD,0/}" $HOME/direwolf.conf
sed -i "s/$PATCARD,0/$CARD,0/g" $HOME/patmenu2/config
yad --title="Sound Card" --width=400 --height=100 \
--image $LOGO --window-icon=$LOGO --image-on-top --text-align=center --on-top \
--center --form --text="\r\r\r\rSound card data has been updated\rfor both Packet and ARDOP modems." \
--button=gtk-ok
$MAIN &
exit
}