Yip
This commit is contained in:
commit
b8528ab6eb
141
diaspora-mod
Normal file
141
diaspora-mod
Normal file
@ -0,0 +1,141 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
CONFIG=/home/diaspora/diaspora/config/diaspora.toml
|
||||||
|
BT="yipyap.social"
|
||||||
|
h=8
|
||||||
|
w=60
|
||||||
|
|
||||||
|
function getBoolSetting(){
|
||||||
|
[ "$(cat "$CONFIG" | grep "$1 =" | awk '{ print $3 }')" = "true" ] && echo "on" || echo "off"
|
||||||
|
}
|
||||||
|
|
||||||
|
function setBoolSetting(){
|
||||||
|
Invites="false"
|
||||||
|
Registrations="false"
|
||||||
|
|
||||||
|
for arg in $@;
|
||||||
|
do
|
||||||
|
case $arg in
|
||||||
|
"Invites")
|
||||||
|
Invites="true"
|
||||||
|
;;
|
||||||
|
"Registrations")
|
||||||
|
Registration="true"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
sudo -u diaspora sed -i "s/open = .*/open = $Invites/" "$CONFIG"
|
||||||
|
sudo -u diaspora sed -i "s/enable_registrations = .*/enable_registrations = $Registrations/" "$CONFIG"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function setInvitesToZeroForUser(){
|
||||||
|
ret=$(sudo -u diaspora psql diaspora_production -c "UPDATE invitation_codes SET count=0 WHERE user_id = (SELECT id FROM users WHERE username = '$1');")
|
||||||
|
if [[ "$ret" =~ ^UPDATE\ [1-9][0-9]*$ ]]; then
|
||||||
|
dialog --backtitle "$BT" --msgbox "Invites has been set to zero." $h $w
|
||||||
|
else
|
||||||
|
dialog --backtitle "$BT" --msgbox "An error has occured:\n\"$ret\"" $h $w
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function queryUser(){
|
||||||
|
if [[ "$1" =~ ^[0-9A-Za-z]+$ ]]; then
|
||||||
|
user=$(sudo -u diaspora psql diaspora_production -c "SELECT username FROM users WHERE username LIKE '$1' LIMIT 1;" -At)
|
||||||
|
if [ -n "$user" ]; then
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
return 2
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function removeInvitesFromUserMenu(){
|
||||||
|
username=$(dialog --backtitle "$BT" --title "Remove invites from user" --inputbox "Here you can remove the invites from a user.\nUsername:" $h $w 3>&1 1>&2 2>&3)
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
|
queryUser "$username"
|
||||||
|
ret=$?
|
||||||
|
case $ret in
|
||||||
|
0)
|
||||||
|
setInvitesToZeroForUser "$username"
|
||||||
|
;;
|
||||||
|
1)
|
||||||
|
dialog --backtitle "$BT" --msgbox "Username not found." $h $w
|
||||||
|
removeInvitesFromUserMenu
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
dialog --backtitle "$BT" --msgbox "The username must be alphanumeric." $h $w
|
||||||
|
removeInvitesFromUserMenu
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function menu(){
|
||||||
|
|
||||||
|
ACTION=$(dialog --backtitle "$BT" --title "Service menu" --menu "Henlo $USER. Whatcha wanna do?" 16 60 6 \
|
||||||
|
1 "Settings" \
|
||||||
|
2 "Remove invites from user" \
|
||||||
|
3 "Restart Webservice" \
|
||||||
|
4 "Restart Sidekiq" \
|
||||||
|
3>&1 1>&2 2>&3
|
||||||
|
)
|
||||||
|
|
||||||
|
case $ACTION in
|
||||||
|
1)
|
||||||
|
invites_enabled=$(getBoolSetting open)
|
||||||
|
registration_enabled=$(getBoolSetting enable_registrations)
|
||||||
|
|
||||||
|
options=$(dialog --backtitle "$BT" --nocancel --title "Settings" --checklist "Change the settings here!" 16 80 10 \
|
||||||
|
"Invites" "Are invites enabled?" "$invites_enabled" \
|
||||||
|
"Registrations" "Are registrations allowed?" "$registration_enabled" \
|
||||||
|
3>&1 1>&2 2>&3
|
||||||
|
)
|
||||||
|
|
||||||
|
ret=$?
|
||||||
|
|
||||||
|
case $ret in
|
||||||
|
0)
|
||||||
|
setBoolSetting $options
|
||||||
|
dialog --backtitle "$BT" --infobox "Applying configuration by restarting the Webservice, pls wait..." $h $w
|
||||||
|
sudo systemctl restart diaspora-web.service
|
||||||
|
;;
|
||||||
|
255)
|
||||||
|
dialog --backtitle "$BT" --infobox "Aborted." $h $w
|
||||||
|
sleep 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
menu
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
removeInvitesFromUserMenu
|
||||||
|
menu
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
dialog --backtitle "$BT" --infobox "Restarting Webservice, pls wait..." $h $w
|
||||||
|
sudo systemctl restart diaspora-web.service
|
||||||
|
systemctl status diaspora-web > /tmp/mod_state
|
||||||
|
dialog --backtitle "$BT" --textbox state 25 100
|
||||||
|
rm /tmp/mod_state
|
||||||
|
menu
|
||||||
|
;;
|
||||||
|
4)
|
||||||
|
dialog --backtitle "$BT" --infobox "Restarting Sidekiq, pls wait..." $h $w
|
||||||
|
sudo systemctl restart diaspora-sidekiq.service
|
||||||
|
systemctl status diaspora-sidekiq > /tmp/mod_state
|
||||||
|
dialog --backtitle "$BT" --textbox state 25 100
|
||||||
|
rm /tmp/mod_state
|
||||||
|
menu
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
menu
|
||||||
|
clear
|
||||||
|
echo -ne "Thank you for playing Wing Commander!\n\nC:\\WC1>"
|
Loading…
Reference in New Issue
Block a user