1
0
mirror of https://github.com/km4ack/patmenu2.git synced 2025-05-18 07:40:11 -07:00

Merge pull request #23 from km4ack/dev

Dev
This commit is contained in:
KM4ACK 2021-03-28 18:50:43 -05:00 committed by GitHub
commit ce8ebbb407
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 327 additions and 88 deletions

View File

@ -1,7 +1,17 @@
release=2.2.2 release=2.3.0
Changelog Changelog
2.3.0 Add new mailbox management section
archive all email
delete archives
delete sent
Add listen modes to manage pat winlink section
add mailbox management to main menu
move email backup to inbox manage
move email restore to inbox manage
fix program exit after email restore
add quick stats
2.2.2 Update Find Gateway Code for Packet in FA-functions 2.2.2 Update Find Gateway Code for Packet in FA-functions
Add manual grid update Add manual grid update
update logo to white background update logo to white background

27
manage-inbox Executable file
View File

@ -0,0 +1,27 @@
#!/bin/bash
export MYPATH=$HOME/patmenu2
LOGO=$MYPATH/pmlogo.png
MAIN=$MYPATH/./patmenu
VERSION=$(cat $MYPATH/changelog | grep release | head -1 | sed 's/release=//')
CALL=$(grep mycall ~/.wl2k/config.json | head -1 | sed 's/"//g;s/mycall: //;s/,//;s/ //g')
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="Archive All Email":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-inbox-functions; ARCHIVE-ALL"' \
--field="Delete Archived Email":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-inbox-functions; DELETE-ARCHIVE"' \
--field="Delete Sent Email":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-inbox-functions; DELETE-SENT"' \
--field="Backup Email":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-inbox-functions; EMAILBKUP"' \
--field="Restore Email":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-inbox-functions; EMAILRESTORE"' \
--button="Main Menu":1
BUT=$?
if [ $BUT = 1 ]; then
$MAIN &
exit
elif [ $BUT = 252 ]; then
exit 0
fi

146
manage-inbox-functions Normal file
View File

@ -0,0 +1,146 @@
MYPATH=$HOME/patmenu2
MAIN=$MYPATH/./manage-inbox
LOGO=$MYPATH/pmlogo.png
VERSION=$(cat $MYPATH/changelog | grep release | head -1 | sed 's/release=//')
source $MYPATH/config
IN=$HOME/.wl2k/mailbox/$MYCALLSIGN/in
ARCHIVE=$HOME/.wl2k/mailbox/$MYCALLSIGN/archive
SENT=$HOME/.wl2k/mailbox/$MYCALLSIGN/sent
ARCHIVE-ALL(){
mv $IN/* $ARCHIVE/
yad --form --width=420 --height=100 --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\rEmails Archived" \
--button=gtk-ok
$MAIN &
}
DELETE-ARCHIVE (){
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\r<b>ARE YOU SURE YOU WANT TO DELETE\rALL ITEMS FROM YOUR ARCHIVE FOLDER?\rTHIS CAN'T BE UNDONE</b>" \
--button="Yes I'm Sure":2 \
--button="No":1
BUT=$?
if [ $BUT = 1 ]; then
$MAIN &
exit 0
elif [ $BUT = 252 ]; then
exit
elif [ $BUT = 2 ]; then
rm $ARCHIVE/*
yad --form --width=420 --height=100 --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\rArchives Deleted" \
--button=gtk-ok
$MAIN &
fi
}
DELETE-SENT(){
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\r<b>ARE YOU SURE YOU WANT TO DELETE\rALL ITEMS FROM YOUR SENT FOLDER?\rTHIS CAN'T BE UNDONE</b>" \
--button="Yes I'm Sure":2 \
--button="No":1
BUT=$?
if [ $BUT = 1 ]; then
$MAIN &
exit 0
elif [ $BUT = 252 ]; then
exit
elif [ $BUT = 2 ]; then
rm $SENT/*
yad --form --width=420 --height=100 --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\rSent Emails Deleted" \
--button=gtk-ok
$MAIN &
fi
}
EMAILBKUP(){
CONFIG=$HOME/.wl2k/config.json
WHO=$(whoami)
CALL=$(cat $HOME/.wl2k/config.json | grep -m 1 mycall | sed 's/\"mycall\": \"//' | sed 's/\",//' | sed -e 's/^\s*//' | tr '[:lower:]' '[:upper:]')
BKUPTIME=$(date +%Y%d%m-%H%M)
BACKUP=$(yad --form --width=420 --text-align=center --center --title="Email Backup" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="<b>Email Backup</b> by KM4ACK" \
--field="Backup Directory":DIR \
--button="Backup Emails":2 \
--button="Cancel":1)
BUT=$?
if [ $BUT = 252 ]; then
exit
elif [ $BUT = 1 ]; then
$MAIN
exit
fi
DIR=$(echo $BACKUP | awk -F "|" '{print $1}')
cp -r $HOME/.wl2k/mailbox/$CALL $DIR/email.bkup.$BKUPTIME
if [ -d $DIR/email.bkup.$BKUPTIME ]; then
yad --center --text="Backup Complete" \
--button=gtk-ok
$MAIN &
exit
fi
}
EMAILRESTORE(){
MYPATH=$HOME/dev/patmenu2
CONFIG=$HOME/.wl2k/config.json
WHO=$(whoami)
CALL=$(cat $HOME/.wl2k/config.json | grep -m 1 mycall | sed 's/\"mycall\": \"//' | sed 's/\",//' | sed -e 's/^\s*//' | tr '[:lower:]' '[:upper:]')
RESTORE=$(yad --form --width=420 --text-align=center --center --title="Email Restore" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="<b>Email Restore</b> by KM4ACK" \
--field="Restore Directory":DIR \
--button="Restore Emails":2 \
--button="Cancel":1)
BUT=$?
if [ $BUT = 252 ]; then
exit
elif [ $BUT = 1 ]; then
$MAIN &
exit
fi
DIR=$(echo $RESTORE | awk -F "|" '{print $1}')
DIRCHECK=$(ls $DIR)
COUNT=${#DIRCHECK}
if [ "$COUNT" = 19 ]; then
cp $DIR/archive/* $HOME/.wl2k/mailbox/$CALL/archive/
cp $DIR/in/* $HOME/.wl2k/mailbox/$CALL/in/
cp $DIR/out/* $HOME/.wl2k/mailbox/$CALL/out/
cp $DIR/sent/* $HOME/.wl2k/mailbox/$CALL/sent/
yad --form --width=420 --text-align=center --center --title="Email Restore" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="<b>Email Restore</b> by KM4ACK\r\r<b>RESTORE COMPLETE</b>" \
--button=gtk-ok
else
yad --form --width=420 --text-align=center --center --title="Email Restore" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="<b>Email Restore</b> by KM4ACK\r\r<b>Not a valid restore directory</b>" \
--button=gtk-ok
fi
$MAIN &
exit
}

View File

@ -14,9 +14,8 @@ yad --form --width=420 --text-align=center --center --title="Manage Pat" --text-
--field="Manual Grid Update":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-pat-functions; MANUALGPS"' \ --field="Manual Grid Update":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-pat-functions; MANUALGPS"' \
--field="Set ARDOP Speed":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-pat-functions; SPEED"' \ --field="Set ARDOP Speed":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-pat-functions; SPEED"' \
--field="Set ARDOP PTT":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-pat-functions; SETPTT"' \ --field="Set ARDOP PTT":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-pat-functions; SETPTT"' \
--field="Set Listen Mode":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-pat-functions; LISTEN"' \
--field="Delete Alias":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-pat-functions; DELETEALIAS"' \ --field="Delete Alias":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-pat-functions; DELETEALIAS"' \
--field="Backup Emails":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-pat-functions; EMAILBKUP"' \
--field="Restore Emails":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-pat-functions; EMAILRESTORE"' \
--field="Backup Pat Config":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-pat-functions; BKUPCONFIG"' \ --field="Backup Pat Config":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-pat-functions; BKUPCONFIG"' \
--field="Restore Pat Config":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-pat-functions; RESTORECONFIG"' \ --field="Restore Pat Config":fbtn 'bash -c "kill -USR1 $YAD_PID; source $MYPATH/manage-pat-functions; RESTORECONFIG"' \
--button="Main Menu":1 --button="Main Menu":1

View File

@ -180,89 +180,6 @@ exit
fi fi
} }
EMAILBKUP(){
CONFIG=$HOME/.wl2k/config.json
WHO=$(whoami)
CALL=$(cat $HOME/.wl2k/config.json | grep -m 1 mycall | sed 's/\"mycall\": \"//' | sed 's/\",//' | sed -e 's/^\s*//' | tr '[:lower:]' '[:upper:]')
BKUPTIME=$(date +%Y%d%m-%H%M)
BACKUP=$(yad --form --width=420 --text-align=center --center --title="Email Backup" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="<b>Email Backup</b> by KM4ACK" \
--field="Backup Directory":DIR \
--button="Backup Emails":2 \
--button="Cancel":1)
BUT=$?
if [ $BUT = 252 ]; then
exit
elif [ $BUT = 1 ]; then
$MAIN
exit
fi
DIR=$(echo $BACKUP | awk -F "|" '{print $1}')
cp -r $HOME/.wl2k/mailbox/$CALL $DIR/email.bkup.$BKUPTIME
if [ -d $DIR/email.bkup.$BKUPTIME ]; then
yad --center --text="Backup Complete" \
--button=gtk-ok
$MAIN &
exit
fi
}
EMAILRESTORE(){
MYPATH=$HOME/dev/patmenu2
CONFIG=$HOME/.wl2k/config.json
WHO=$(whoami)
CALL=$(cat $HOME/.wl2k/config.json | grep -m 1 mycall | sed 's/\"mycall\": \"//' | sed 's/\",//' | sed -e 's/^\s*//' | tr '[:lower:]' '[:upper:]')
RESTORE=$(yad --form --width=420 --text-align=center --center --title="Email Restore" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="<b>Email Restore</b> by KM4ACK" \
--field="Restore Directory":DIR \
--button="Restore Emails":2 \
--button="Cancel":1)
BUT=$?
if [ $BUT = 252 ]; then
exit
elif [ $BUT = 1 ]; then
$MAIN
exit
fi
DIR=$(echo $RESTORE | awk -F "|" '{print $1}')
DIRCHECK=$(ls $DIR)
COUNT=${#DIRCHECK}
if [ "$COUNT" = 19 ]; then
cp $DIR/archive/* $HOME/.wl2k/mailbox/$CALL/archive/
cp $DIR/in/* $HOME/.wl2k/mailbox/$CALL/in/
cp $DIR/out/* $HOME/.wl2k/mailbox/$CALL/out/
cp $DIR/sent/* $HOME/.wl2k/mailbox/$CALL/sent/
yad --form --width=420 --text-align=center --center --title="Email Restore" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="<b>Email Restore</b> by KM4ACK\r\r<b>RESTORE COMPLETE</b>" \
--button=gtk-ok
else
yad --form --width=420 --text-align=center --center --title="Email Restore" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="<b>Email Restore</b> by KM4ACK\r\r<b>Not a valid restore directory</b>" \
--button=gtk-ok
fi
exit
}
RESTORECONFIG(){ RESTORECONFIG(){
CONFIG=$HOME/.wl2k/config.json CONFIG=$HOME/.wl2k/config.json
OUTFILE=/run/user/$UID/config.list OUTFILE=/run/user/$UID/config.list
@ -441,7 +358,102 @@ yad --form --width=400 --text-align=center --center --title="Grid Update" --text
$MAIN $MAIN
} }
LISTEN(){
#This funtion sets the listen modes for Pat Winlink
WHO=$(whoami)
TEMP=/run/user/$UID/listen.txt
NOW=$(grep ExecStart /lib/systemd/system/pat@.service | sed 's|ExecStart=/usr/bin/pat -l||;s/http//')
if [ $NOW = 'ExecStart=/usr/bin/pat' ]; then
NOW="Not listening for incoming connections"
fi
LISTEN=$(yad --center --list --checklist --width=600 --height=300 --separator="|" \
--image $LOGO --column=Check --column=Mode --column=Description \
--print-column=2 --window-icon=$LOGO --image-on-top --text-align=center \
--text="<b>Pat Listen Modes</b>\rCurrently Listening on:\r$NOW" --title="Pat Menu" \
false "TELNET" "Connection over Internet or Mesh" \
false "AX25" "Packet Connections 2M-440" \
false "ARDOP" "HF Connections using ARDOP Modem" \
--button="Main Menu":1 \
--button="Set Listen Mode":2 \
--button="Stop Listening":3)
BUT=$?
if [ $BUT = 252 ]; then
exit
elif [ $BUT = 1 ]; then
$MAIN &
exit
elif [ $BUT = 2 ]; then
#Send results to temp file.
echo $LISTEN > $TEMP
#check temp file for what's there
TELNET=$(grep TELNET $TEMP)
ARDOP=$(grep ARDOP $TEMP)
AX25=$(grep AX25 $TEMP)
#Set telnet variable
if [ -n "$TELNET" ]; then
TELNET="telnet,"
fi
#set ardop variable
if [ -n "$ARDOP" ]; then
ARDOP="ardop,"
fi
#set ax25 variable
if [ -n "$AX25" ]; then
AX25="ax25,"
fi
cat <<EOF > $TEMP
[Unit]
Description=pat - Winlink client for %I
Documentation=https://github.com/la5nta/pat/wiki
After=ax25.service network.target
[Service]
User=%i
ExecStart=/usr/bin/pat http
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
#add listen modes set by user
sed -i "s|Exec.*|ExecStart=/usr/bin/pat -l $TELNET$ARDOP$AX25 http|" $TEMP
sudo cp $TEMP /lib/systemd/system/pat@.service
sudo systemctl daemon-reload
sudo systemctl restart pat@$WHO
yad --form --width=320 --text-align=center --center --title="Listening" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="<b>Listen mode set to $TELNET$ARDOP$AX25</b>" \
--button=gtk-ok
$MAIN &
exit
elif [ $BUT = 3 ]; then
cat <<EOF > $TEMP
[Unit]
Description=pat - Winlink client for %I
Documentation=https://github.com/la5nta/pat/wiki
After=ax25.service network.target
[Service]
User=%i
ExecStart=/usr/bin/pat http
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
sudo cp $TEMP /lib/systemd/system/pat@.service
sudo systemctl daemon-reload
sudo systemctl restart pat@$WHO
fi
yad --form --width=320 --text-align=center --center --title="Listening" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="<b>No longer listening for incoming connections</b>" \
--button=gtk-ok
$MAIN &
exit
}

View File

@ -133,7 +133,50 @@ exit
fi fi
} }
STATS(){
CONFIG=$HOME/.wl2k/config.json
SMD=/lib/systemd/system/pat@.service
CALL=$(grep mycall $CONFIG | head -1 | sed s'/"mycall": //;s/"//g;s/,//;s/ //g')
GRID=$(grep locator $CONFIG | sed 's/"//g;s/locator://;s/,//;s/ //g')
ARDOPMAX=$(grep -i max $CONFIG | sed 's/"Max":\ //;s/ //g')
PTT=$(grep ptt_ctrl $CONFIG | tail -1 | sed 's/"ptt_ctrl":\ //;s/,//;s/ //g')
PORT=$(grep http_addr $CONFIG | sed 's/^.*0://;s/",//')
RIG=$(grep RIGCONTROL $HOME/patmenu2/config | sed 's/RIGCONTROL=//')
TELNET=$(grep telnet, $SMD)
ARDOP=$(grep ardop, $SMD)
AX25=$(grep ax25, $SMD)
#Set telnet variable
if [ -n "$TELNET" ]; then
TELNET="telnet,"
fi
#set ardop variable
if [ -n "$ARDOP" ]; then
ARDOP="ardop,"
fi
#set ax25 variable
if [ -n "$AX25" ]; then
AX25="ax25,"
fi
if [ -z "$TELNET" ] && [ -z "$ARDOP" ] && [ -z "$AX25" ]; then
LISTEN="Not Listening"
else
LISTEN="$TELNET$ARDOP$AX25"
fi
yad --form --width=320 --text-align=center --center --title="Quick Stats" --text-align=center \
--image $LOGO --window-icon=$LOGO --image-on-top --separator="|" --item-separator="|" \
--text="<b>Quick Stats</b>" \
--field="Current User":RO "$CALL" \
--field="Current Grid":RO "$GRID" \
--field="ARDOP Speed":RO "$ARDOPMAX" \
--field="ARDOP PTT is":RO "$PTT" \
--field="Listen Modes":RO "$LISTEN" \
--field="Rig Control":RO "$RIG" \
--field="Pat Port":RO "$PORT" \
--button=gtk-ok
$MAIN &
exit
}

View File

@ -29,8 +29,10 @@ yad --form --width=420 --text-align=center --center --title="Pat Menu" --text-al
--field="Find Winlink Gateways":fbtn 'bash -c "kill -USR1 $YAD_PID; $MYPATH/find2"' \ --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 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="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 Pat Winlink":fbtn 'bash -c "kill -USR1 $YAD_PID; $MYPATH/manage-pat"' \
--field="Settings/Config":fbtn 'bash -c "kill -USR1 $YAD_PID; $MYPATH/manage-menu"' \ --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="My Call - $MYCALLSIGN":LBL \
--button="QUIT":1 --button="QUIT":1