mirror of
https://github.com/km4ack/patmenu2.git
synced 2025-05-16 06:40:10 -07:00
109 lines
4.0 KiB
Bash
Executable File
109 lines
4.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#Pat Menu
|
|
#20200427 KM4ACK
|
|
#side note: written during covid-19 outbreak of 2020
|
|
|
|
|
|
export MYPATH=$HOME/patmenu2
|
|
LOGO=$MYPATH/pmlogo.png
|
|
MAIN=$MYPATH/./patmenu
|
|
VERSION=$(cat $MYPATH/changelog | grep release | head -1 | sed 's/release=//')
|
|
|
|
source $MYPATH/config
|
|
|
|
#verify pat is at least v0.12.0
|
|
PAT_VER=`pat version | awk '{print $2}' | awk -F "." '{print $2}'`
|
|
|
|
if [ $PAT_VER -lt 12 ]; then
|
|
#give user notice
|
|
yad --form --width=420 --text-align=center --center --title="Pat out of Date" --text-align=center \
|
|
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
|
|
--text="Pat Menu only supports Pat Winlink\rversion 0.12.0 or later\r<b>Please update Pat Winlink</b>" \
|
|
--button=gtk-ok
|
|
exit
|
|
fi
|
|
|
|
if [ $WARN = 'yes' ] && [ ! -f /run/user/$UID/patwarn.txt ]; then
|
|
#give user warning message
|
|
yad --form --width=420 --text-align=center --center --title="WARNING!!" --text-align=center \
|
|
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
|
|
--text="<b>${WARNMSG}</b>" \
|
|
--button=gtk-ok
|
|
touch /run/user/$UID/patwarn.txt
|
|
fi
|
|
|
|
#verify call is set
|
|
if [ "$MYCALLSIGN" = "N0CALL" ]; then
|
|
yad --title="N0CALL" --width=400 --height=100 \
|
|
--image $LOGO --window-icon=$LOGO --image-on-top --text-align=center \
|
|
--center --form --text="\r\r\r\rCall sign not set! \rGo to <b>Settings</b>, then <b>Current Config Settings</b>\rand update your call sign" \
|
|
--button=gtk-ok
|
|
fi
|
|
|
|
#get name of current config file
|
|
source $MYPATH/.currentconf
|
|
CONFIG=$(echo $CONF | sed 's/.config//')
|
|
if [ -z $CONFIG ]; then
|
|
CONFIG=default
|
|
fi
|
|
|
|
########################
|
|
#get sudo pw
|
|
########################
|
|
if [ ! -f /run/user/$UID/.patmenu ]; then
|
|
PW=$(yad --title="sudo password" --width=400 --height=100 \
|
|
--image $LOGO --window-icon=$LOGO --image-on-top --text-align=center \
|
|
--center --form --text="Please enter your sudo password" \
|
|
--field="Password":H \
|
|
--button=gtk-ok)
|
|
PASS=$(echo $PW | awk -F "|" '{print $1}')
|
|
echo $PASS | base64 > /run/user/$UID/.patmenu
|
|
echo '#!/bin/bash' > /run/user/$UID/.pmpw
|
|
echo 'PASS=$(base64 -d /run/user/$UID/.patmenu)' >> /run/user/$UID/.pmpw
|
|
echo 'echo $PASS' >> /run/user/$UID/.pmpw
|
|
chmod +x /run/user/$UID/.pmpw
|
|
export SUDO_ASKPASS=/run/user/$UID/.pmpw
|
|
#reset sudo timer to prevent false positive
|
|
sudo -k
|
|
echo "Checking SUDO credentials....standby"
|
|
sudo -A touch /run/user/$UID/sutest 2>&1 </dev/null
|
|
|
|
if [ $? = 1 ]; then
|
|
echo "Wrong sudo password entered. Can't continue! Exiting"
|
|
yad --title="Wrong Password" --width=400 --height=100 \
|
|
--image $LOGO --window-icon=$LOGO --image-on-top --text-align=center \
|
|
--center --form --text="Wrong Password. Can't continue'" \
|
|
--button="Exit"
|
|
rm /run/user/$UID/.patmenu /run/user/$UID/.pmpw
|
|
exit
|
|
else
|
|
echo "Credentials check out....continuing"
|
|
fi
|
|
|
|
else
|
|
export SUDO_ASKPASS=/run/user/$UID/.pmpw
|
|
fi
|
|
############################
|
|
|
|
yad --form --width=420 --text-align=center --center --title="Pat Menu" --text-align=center \
|
|
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
|
|
--text="<b>Pat Menu</b> by KM4ACK\rv$VERSION" \
|
|
--field="Start/Stop Modem":fbtn 'bash -c "kill -USR1 $YAD_PID; $MYPATH/modems"' \
|
|
--field="Find Winlink Gateways":fbtn 'bash -c "kill -USR1 $YAD_PID; $MYPATH/find2"' \
|
|
--field="Pat Auto Connect":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/pat-functions; AUTOPAT"' \
|
|
--field="Pat Catalog":fbtn 'bash -c "kill -USR1 $YAD_PID; $MYPATH/catalog"' \
|
|
--field="Manage Inbox":fbtn 'bash -c "kill -USR1 $YAD_PID; $MYPATH/manage-inbox"' \
|
|
--field="Manage Pat Winlink":fbtn 'bash -c "kill -USR1 $YAD_PID; $MYPATH/manage-pat"' \
|
|
--field="Manage Winlink Forms":fbtn 'bash -c "kill -USR1 $YAD_PID; $MYPATH/manage-forms"' \
|
|
--field="Settings/Config":fbtn 'bash -c "kill -USR1 $YAD_PID; $MYPATH/manage-menu"' \
|
|
--field="Quick Stats":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/pat-functions; STATS"' \
|
|
--field="My Call - $MYCALLSIGN":LBL \
|
|
--field="Config=$CONFIG":LBL \
|
|
--button="QUIT":1
|
|
|
|
BUT=$?
|
|
if [ $BUT = 1 ]; then
|
|
exit
|
|
fi
|