mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2025-12-07 09:36:05 -08:00
208 lines
6.4 KiB
Bash
208 lines
6.4 KiB
Bash
#!/bin/bash
|
|
# ------------------------------------------------------------------------------
|
|
# Pi.Alert
|
|
# Open Source Network Guard / WIFI & LAN intrusion detector
|
|
#
|
|
# pialert_uninstall.sh - Uninstallation script
|
|
# ------------------------------------------------------------------------------
|
|
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3
|
|
# ------------------------------------------------------------------------------
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Variables
|
|
# ------------------------------------------------------------------------------
|
|
COLS=70
|
|
ROWS=12
|
|
|
|
INSTALL_DIR=~
|
|
PIALERT_HOME="$INSTALL_DIR/pialert"
|
|
|
|
LIGHTTPD_CONF_DIR="/etc/lighttpd"
|
|
WEBROOT="/var/www/html"
|
|
|
|
LOG="pialert_uninstall_`date +"%Y-%m-%d_%H-%M"`.log"
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Main
|
|
# ------------------------------------------------------------------------------
|
|
main() {
|
|
print_superheader "Pi.Alert Uninstallation"
|
|
log "`date`"
|
|
log "Logfile: $LOG"
|
|
|
|
# Ask uninstallation
|
|
ask_yesno "This script will uninstall Pi.Alert from this system.\nUninstall path: $PIALERT_HOME" \
|
|
"Do you want to continue ?"
|
|
if ! $ANSWER ; then
|
|
exit 1
|
|
fi
|
|
|
|
msgbox "" "The uninstallation process will start now"
|
|
|
|
# Uninstall prrocess
|
|
print_header "Removing files"
|
|
sudo rm -r "$PIALERT_HOME" 2>&1 >> "$LOG"
|
|
sudo rm "$WEBROOT/pialert" 2>&1 >> "$LOG"
|
|
sudo rm "$LIGHTTPD_CONF_DIR/conf-available/pialert_front.conf" 2>&1 >> "$LOG"
|
|
sudo rm "$LIGHTTPD_CONF_DIR/conf-enabled/pialert_front.conf" 2>&1 >> "$LOG"
|
|
sudo rm -r /var/cache/lighttpd/compress/pialert 2>&1 >> "$LOG"
|
|
|
|
# Removing
|
|
print_header "Removing Pi.Alert DNS name"
|
|
if [ -f /etc/pihole/custom.list ] ; then
|
|
sudo sed -i '/pi.alert/d' /etc/pihole/custom.list 2>&1 >> "$LOG"
|
|
sudo pihole restartdns 2>&1 >> "$LOG"
|
|
fi
|
|
|
|
# Uninstall crontab jobs
|
|
print_header "Removing crontab jobs"
|
|
crontab -l 2>/dev/null | sed '/pialert.py/d' | sed ':a;N;$!ba;s/#-------------------------------------------------------------------------------\n# Pi.Alert\n# Open Source Network Guard \/ WIFI & LAN intrusion detector \n#\n# pialert.cron - Back module. Crontab jobs\n#-------------------------------------------------------------------------------\n# Puche 2021 pi.alert.application@gmail.com GNU GPLv3\n#-------------------------------------------------------------------------------//g' | crontab -
|
|
|
|
# final message
|
|
print_header "Uninstallation process finished"
|
|
print_msg "Note1: If you installed Pi-hole during the Pi.Alert installation process"
|
|
print_msg " Pi-hole will still be available after uninstalling Pi.Alert"
|
|
print_msg ""
|
|
print_msg "Note2: lighttpd, PHP, arp-scan & Python have not been uninstalled."
|
|
print_msg " They may be required by other software"
|
|
print_msg " You can uninstall them manually with command 'apt-get remove XX'"
|
|
}
|
|
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# ASK
|
|
# ------------------------------------------------------------------------------
|
|
msgbox() {
|
|
LINE1=$(printf "%*s" $(((${#1}+$COLS-5)/2)) "$1")
|
|
LINE2=$(printf "%*s" $(((${#2}+$COLS-5)/2)) "$2")
|
|
|
|
END_DIALOG=false
|
|
while ! $END_DIALOG ; do
|
|
whiptail --title "Pi.Alert Uninstallation" --msgbox "$LINE1\\n\\n$LINE2" $ROWS $COLS
|
|
BUTTON=$?
|
|
ask_cancel
|
|
ANSWER=true
|
|
done
|
|
}
|
|
|
|
ask_yesno() {
|
|
LINE1=$(printf "%*s" $(((${#1}+$COLS-5)/2)) "$1")
|
|
LINE2=$(printf "%*s" $(((${#2}+$COLS-5)/2)) "$2")
|
|
|
|
if [ "$3" = "YES" ]; then
|
|
DEF_BUTTON=""
|
|
else
|
|
DEF_BUTTON="--defaultno"
|
|
fi
|
|
|
|
END_DIALOG=false
|
|
while ! $END_DIALOG ; do
|
|
whiptail --title "Pi.Alert Uninstallation" --yesno $DEF_BUTTON "$LINE1\\n\\n$LINE2" $ROWS $COLS
|
|
BUTTON=$?
|
|
ask_cancel
|
|
done
|
|
|
|
if [ "$BUTTON" = "0" ] ; then
|
|
ANSWER=true
|
|
else
|
|
ANSWER=false
|
|
fi
|
|
}
|
|
|
|
ask_option() {
|
|
MENU_ARGS=("$@")
|
|
MENU_ARGS=("${MENU_ARGS[@]:1}")
|
|
|
|
END_DIALOG=false
|
|
while ! $END_DIALOG ; do
|
|
ANSWER=$(whiptail --title "Pi.Alert Uninstallation" --menu "$1" $ROWS $COLS "${MENU_ARGS[@]}" 3>&2 2>&1 1>&3 )
|
|
BUTTON=$?
|
|
ask_cancel CANCEL
|
|
done
|
|
}
|
|
|
|
ask_input() {
|
|
LINE1=$(printf "%*s" $(((${#1}+$COLS-5)/2)) "$1")
|
|
LINE2=$(printf "%*s" $(((${#2}+$COLS-5)/2)) "$2")
|
|
|
|
END_DIALOG=false
|
|
while ! $END_DIALOG ; do
|
|
ANSWER=$(whiptail --title "Pi.Alert Uninstallation" --inputbox "$LINE1\\n\\n$LINE2" $ROWS $COLS "$3" 3>&2 2>&1 1>&3 )
|
|
BUTTON=$?
|
|
ask_cancel CANCEL
|
|
|
|
if $END_DIALOG && [ "$ANSWER" = "" ] ; then
|
|
msgbox "" "You must enter a value"
|
|
END_DIALOG=false
|
|
fi
|
|
done
|
|
}
|
|
|
|
ask_cancel() {
|
|
LINE0="Do you want to cancel the uninstallation process"
|
|
LINE0=$(printf "\n\n%*s" $(((${#LINE0}+$COLS-5)/2)) "$LINE0")
|
|
|
|
if [ "$BUTTON" = "1" ] && [ "$1" = "CANCEL" ] ; then BUTTON="255"; fi
|
|
|
|
if [ "$BUTTON" = "255" ] ; then
|
|
whiptail --title "Pi.Alert Uninstallation" --yesno --defaultno "$LINE0" $ROWS $COLS
|
|
|
|
if [ "$?" = "0" ] ; then
|
|
process_error "Uninstallation Aborted by User"
|
|
fi
|
|
else
|
|
END_DIALOG=true
|
|
fi
|
|
}
|
|
|
|
# ------------------------------------------------------------------------------
|
|
# Log
|
|
# ------------------------------------------------------------------------------
|
|
log() {
|
|
echo "$1" | tee -a "$LOG"
|
|
}
|
|
|
|
log_no_screen () {
|
|
echo "$1" >> "$LOG"
|
|
}
|
|
|
|
log_only_screen () {
|
|
echo "$1"
|
|
}
|
|
|
|
print_msg() {
|
|
log_no_screen ""
|
|
log "$1"
|
|
}
|
|
|
|
print_superheader() {
|
|
log ""
|
|
log "############################################################"
|
|
log " $1"
|
|
log "############################################################"
|
|
}
|
|
|
|
print_header() {
|
|
log ""
|
|
log "------------------------------------------------------------"
|
|
log " $1"
|
|
log "------------------------------------------------------------"
|
|
}
|
|
|
|
process_error() {
|
|
log ""
|
|
log "************************************************************"
|
|
log "************************************************************"
|
|
log "** ERROR UNINSTALLING PI.ALERT **"
|
|
log "************************************************************"
|
|
log "************************************************************"
|
|
log ""
|
|
|
|
# msgbox "****** ERROR UNINSTALLING Pi.ALERT ******" "$1"
|
|
exit 1
|
|
}
|
|
|
|
# ------------------------------------------------------------------------------
|
|
main
|
|
exit 0
|