Less data loss, neater editor
Signed-off-by: Georg <georg@lysergic.dev>
This commit is contained in:
parent
59cce00bf8
commit
800ecf65f1
105
pounceman.sh
105
pounceman.sh
@ -46,10 +46,20 @@ get_networks() {
|
|||||||
RADIOLIST="$RADIOLIST $FILENAME $FILENAME off"
|
RADIOLIST="$RADIOLIST $FILENAME $FILENAME off"
|
||||||
let COUNTER=COUNTER+1
|
let COUNTER=COUNTER+1
|
||||||
done
|
done
|
||||||
user_choice=$(dialog --backtitle "LibertaCasa IRC Services - Pounce Division - https://liberta.casa/" \
|
if [ $1 = "enabled" ]; then
|
||||||
--radiolist "Networks" 0 0 $COUNTER \
|
user_choice=$(dialog --ok-label "Edit" \
|
||||||
$RADIOLIST \
|
--backtitle "LibertaCasa IRC Services - Pounce Division - https://liberta.casa/" \
|
||||||
2>&1 1>&3)
|
--radiolist "Networks" 0 0 $COUNTER \
|
||||||
|
$RADIOLIST \
|
||||||
|
2>&1 1>&3)
|
||||||
|
fi
|
||||||
|
if [ $1 = "disabled" ]; then
|
||||||
|
user_choice=$(dialog --ok-label "Edit" \
|
||||||
|
--backtitle "LibertaCasa IRC Services - Pounce Division - https://liberta.casa/" \
|
||||||
|
--radiolist "Networks" 0 0 $COUNTER \
|
||||||
|
$RADIOLIST \
|
||||||
|
2>&1 1>&3)
|
||||||
|
fi
|
||||||
exec 3>&-
|
exec 3>&-
|
||||||
echo $user_choice > /tmp/userchoice
|
echo $user_choice > /tmp/userchoice
|
||||||
else
|
else
|
||||||
@ -66,52 +76,65 @@ edit_network() {
|
|||||||
cp $pouncedir/users/$USER/$1/$user_choice $tmpfile
|
cp $pouncedir/users/$USER/$1/$user_choice $tmpfile
|
||||||
nw_name=$user_choice
|
nw_name=$user_choice
|
||||||
nw_hostname=$(egrep '(^|\s)host =' $tmpfile | sed 's/host = //' - )
|
nw_hostname=$(egrep '(^|\s)host =' $tmpfile | sed 's/host = //' - )
|
||||||
nw_nickname=$(grep 'nick' $tmpfile | sed 's/nick = //' - )
|
nw_nickname=$(egrep '(^|\s)nick =' $tmpfile | sed 's/nick = //' - )
|
||||||
nw_password=$(grep 'sasl-plain' $tmpfile | sed 's/sasl-plain = //' - )
|
nw_password=$(egrep '(^|\s)sasl-plain =' $tmpfile | sed 's/sasl-plain = //' - )
|
||||||
nw_channels=$(grep 'join' $tmpfile | sed 's/join = //' - )
|
nw_channels=$(egrep '(^|\s)join =' $tmpfile | sed 's/join = //' - )
|
||||||
nw_away=$(grep 'away' $tmpfile | sed 's/away = //' -)
|
nw_away=$(grep 'away' $tmpfile | sed 's/away = //' -)
|
||||||
|
echo "$nw_hostname\n$nw_nickname\n$nw_password\n$nw_channels\n$nw_away" > /tmp/nwvars
|
||||||
exec 3>&1
|
exec 3>&1
|
||||||
user_input=$(dialog --ok-label "Submit" \
|
user_input=$(dialog --ok-label "Save" \
|
||||||
--extra-button \
|
--extra-button \
|
||||||
--extra-label "Delete" \
|
--extra-label "Delete" \
|
||||||
--backtitle "LibertaCasa IRC Services - Pounce Division - https://liberta.casa/" \
|
--backtitle "LibertaCasa IRC Services - Pounce Division - https://liberta.casa/" \
|
||||||
--title "New IRC Network" \
|
--title "Edit IRC Network" \
|
||||||
--form "Network specific details:" \
|
--form "$USER/$nw_name:" \
|
||||||
20 50 0 \
|
15 60 0 \
|
||||||
"Arbitrary name:" 1 1 "$nw_name" 1 10 20 0 \
|
"Hostname:" 1 1 "$nw_hostname" 1 18 33 0 \
|
||||||
"Hostname:" 2 1 "$nw_hostname" 2 10 20 0 \
|
"Nickname:" 2 1 "$nw_nickname" 2 18 33 0 \
|
||||||
"Nickname:" 3 1 "$nw_nickname" 3 10 20 0 \
|
"SASL Password:" 3 1 "$nw_password" 3 18 33 0 \
|
||||||
"SASL Password:" 4 1 "$nw_password" 4 10 20 0 \
|
"Channels:" 4 1 "$nw_channels" 4 18 33 0 \
|
||||||
"Channels:" 5 1 "$nw_channels" 5 10 20 0 \
|
"Away message:" 5 1 "$nw_away" 5 18 33 0 \
|
||||||
"Away message:" 6 1 "$nw_away" 6 10 20 0 \
|
|
||||||
2>&1 1>&3)
|
2>&1 1>&3)
|
||||||
exit_status=$?
|
exit_status=$?
|
||||||
exec 3>&-
|
exec 3>&-
|
||||||
echo $user_input > /tmp/userinput
|
echo $user_input > /tmp/userinput
|
||||||
tmp_name=$(echo "$user_input" | sed -n 1p)
|
case $exit_status in
|
||||||
tmp_hostname=$(echo "$user_input" | sed -n 2p)
|
0)
|
||||||
tmp_nickname=$(echo "$user_input" | sed -n 3p)
|
tmp_name=$(echo "$user_input" | sed -n 1p)
|
||||||
tmp_password=$(echo "$user_input" | sed -n 4p)
|
tmp_hostname=$(echo "$user_input" | sed -n 2p)
|
||||||
tmp_channels=$(echo "$user_input" | sed -n 5p)
|
tmp_nickname=$(echo "$user_input" | sed -n 3p)
|
||||||
tmp_away=$(echo "$user_input" | sed -n 6p)
|
tmp_password=$(echo "$user_input" | sed -n 4p)
|
||||||
sed -e "s/$(egrep '(^|\s)host =' $tmpfile)/host = $tmp_hostname/" -i $tmpfile
|
tmp_channels=$(echo "$user_input" | sed -n 5p)
|
||||||
# sed -e "s/$nw_name/$tmp_name/" -i $tmpfile
|
tmp_away=$(echo "$user_input" | sed -n 6p)
|
||||||
# sed -e "s/$nw_pasword/$tmp_password/" -i $tmpfile
|
echo "$tmp_name\n$tmp_nickname\n$tmp_password\n$tmp_channels\n$tmp_away" > /tmp/tmpvars
|
||||||
# sed -e "s/$nw_hostname/$tmp_hostname/" -i $tmpfile
|
sed -e "s/$(egrep '(^|\s)host =' $tmpfile)/host = $tmp_hostname/" -i $tmpfile
|
||||||
# sed -e "s/$nw_channels/$tmp_channels/" -i $tmpfile
|
sed -e "s/$(egrep '(^|\s)nick =' $tmpfile)/nick = $tmp_nickname/" -i $tmpfile
|
||||||
# sed -e "s/$nw_nickname/$tmp_nickname/" -i $tmpfile
|
sed -e "s+$(egrep '(^|\s)real =' $tmpfile)+real = $tmp_nickname - https://liberta.casa/+" -i $tmpfile
|
||||||
# sed -e "s/$nw_away/$tmp_away/" -i $tmpfile
|
sed -e "s/$(egrep '(^|\s)user =' $tmpfile)/user = $tmp_nickname/" -i $tmpfile
|
||||||
DIFF=$(diff $pouncedir/users/$USER/$1/$user_choice $tmpfile)
|
sed -e "s/$(egrep '(^|\s)sasl-plain =' $tmpfile)/sasl-plain = $tmp_password/" -i $tmpfile
|
||||||
if [ ! "$DIFF" = "" ]; then
|
sed -e "s/$(egrep '(^|\s)join =' $tmpfile)/join = $tmp_channels/" -i $tmpfile
|
||||||
cp $tmpfile $pouncedir/users/$USER/$1/$user_choice
|
sed -e "s/$(egrep '(^|\s)away =' $tmpfile)/away = $tmp_away/" -i $tmpfile
|
||||||
fi
|
DIFF=$(diff $pouncedir/users/$USER/$1/$user_choice $tmpfile)
|
||||||
#rm $tmpfile
|
if [ ! "$DIFF" = "" ]; then
|
||||||
|
cp $tmpfile $pouncedir/users/$USER/$1/$user_choice
|
||||||
|
fi
|
||||||
|
rm $tmpfile
|
||||||
|
;;
|
||||||
|
esac
|
||||||
nw_name=""
|
nw_name=""
|
||||||
nw_hostname=""
|
nw_hostname=""
|
||||||
nw_nickname=""
|
nw_nickname=""
|
||||||
nw_password=""
|
nw_password=""
|
||||||
nw_channels=""
|
nw_channels=""
|
||||||
nw_away=""
|
nw_away=""
|
||||||
|
tmp_name=""
|
||||||
|
tmp_hostname=""
|
||||||
|
tmp_nickname=""
|
||||||
|
tmp_password=""
|
||||||
|
tmp_channels=""
|
||||||
|
tmp_away=""
|
||||||
|
tmpfile=""
|
||||||
|
DIFF=""
|
||||||
}
|
}
|
||||||
|
|
||||||
set_network() {
|
set_network() {
|
||||||
@ -140,12 +163,12 @@ add_network() {
|
|||||||
--title "New IRC Network" \
|
--title "New IRC Network" \
|
||||||
--form "Network specific details:" \
|
--form "Network specific details:" \
|
||||||
20 50 0 \
|
20 50 0 \
|
||||||
"Arbitrary name:" 1 1 "$nw_name" 1 10 20 0 \
|
"Arbitrary name:" 1 1 "$nw_name" 1 18 33 0 \
|
||||||
"Hostname:" 2 1 "$nw_hostname" 2 10 20 0 \
|
"Hostname:" 2 1 "$nw_hostname" 2 18 33 0 \
|
||||||
"Nickname:" 3 1 "$nw_nickname" 3 10 20 0 \
|
"Nickname:" 3 1 "$nw_nickname" 3 18 33 0 \
|
||||||
"SASL Password:" 4 1 "$nw_password" 4 10 20 0 \
|
"SASL Password:" 4 1 "$nw_password" 4 18 33 0 \
|
||||||
"Channels:" 5 1 "$nw_channels" 5 10 20 0 \
|
"Channels:" 5 1 "$nw_channels" 5 18 33 0 \
|
||||||
"Away message:" 6 1 "$nw_away" 6 10 20 0 \
|
"Away message:" 6 1 "$nw_away" 6 18 33 0 \
|
||||||
2>&1 1>&3)
|
2>&1 1>&3)
|
||||||
#3>&1 1>&2 2>&3 3>&-)
|
#3>&1 1>&2 2>&3 3>&-)
|
||||||
exec 3>&-
|
exec 3>&-
|
||||||
|
Loading…
Reference in New Issue
Block a user