mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 01:00:29 +08:00
113 lines
3.9 KiB
Bash
113 lines
3.9 KiB
Bash
#!/bin/bash
|
|
# Script written by @srepac as requested by @Mark Jim
|
|
# This script perform uninstall of pikvm from raspbian. This performs the following:
|
|
#
|
|
# 1. Stop/disable kvmd services
|
|
# 2. Remove the main kvmd package files based on what was installed (see /var/cache/kvmd/installed_ver.txt file)
|
|
#
|
|
# CAVEATS:
|
|
# 1. Script does not remove /usr/bin/ttyd (webterm), /usr/bin/ustreamer, /usr/bin/ustreamer-dump
|
|
# 2. Script does not remove /usr/bin/janus (webrtc) and all its dependent files also
|
|
# 3. Script does not remove any directories; you may end up with empty directories
|
|
###
|
|
# CHANGELOG:
|
|
# 1.0 20220218 created script
|
|
# 1.1 20220220 confirm uninstall and add -f option to perform destructive commands
|
|
# 1.2 20220225 restore original /etc/motd
|
|
# 2.0 20220225 save custom configs for possible restores during re-install later
|
|
VER=2.0
|
|
|
|
save-configs() { ### save config files inside /etc/kvmd in case user re-installs pikvm later
|
|
if [[ $f_flag -eq 1 ]]; then
|
|
printf "\n-> Saving config files\n"
|
|
|
|
# Save passwd files used by PiKVM
|
|
cp /etc/kvmd/htpasswd /etc/kvmd/htpasswd.save
|
|
cp /etc/kvmd/ipmipasswd /etc/kvmd/ipmipasswd.save
|
|
cp /etc/kvmd/vncpasswd /etc/kvmd/vncpasswd.save
|
|
|
|
# Save webUI name and overrides
|
|
cp /etc/kvmd/meta.yaml /etc/kvmd/meta.yaml.save
|
|
cp /etc/kvmd/override.yaml /etc/kvmd/override.yaml.save
|
|
cp /etc/kvmd/web.css /etc/kvmd/web.css.save
|
|
|
|
# Save Janus configs
|
|
#cp /etc/kvmd/janus/janus.cfg /etc/kvmd/janus/janus.cfg.save
|
|
|
|
# Save sudoers.d/99_kvmd
|
|
cp /etc/sudoers.d/99_kvmd /etc/sudoers.d/99_kvmd.save
|
|
cp /etc/sudoers.d/custom_commands /etc/sudoers.d/custom_commands.save
|
|
fi
|
|
}
|
|
|
|
stop-disable-kvmd() {
|
|
#for i in $( systemctl | grep kvmd | grep -v var | awk '{print $1}')
|
|
|
|
for i in $( systemctl | grep kvmd | grep -v var | awk '$1||$2 ~ /kvmd/ {print $2, $1}' | sed 's/loaded //g' | cut -d' ' -f1 )
|
|
do
|
|
echo "-> Stopping/disabling ${i} ..."
|
|
if [[ $f_flag -eq 1 ]]; then systemctl disable --now $i; fi
|
|
done
|
|
} # end stop-disable-kvmd
|
|
|
|
# Determine what kvmd version was installed last
|
|
remove-kvmd-package() {
|
|
printf "\nProceeding to remove kvmd package files\n" | tee -a $LOGFILE
|
|
#KVMDVER=$( egrep 'kvmd-[0-9]' $INSTLOG | awk '{print $4}' | cut -d'-' -f2 | tail -1 )
|
|
KVMDVER=$( pikvm-info | grep kvmd-platform | awk '{print $1}' )
|
|
KVMDPKG="kvmd-${KVMDVER}"
|
|
|
|
echo "Uninstalling ${KVMDPKG} from this system."
|
|
for file in $( tar tvfJ /var/cache/kvmd/${KVMDPKG}* | awk '{print $NF}' | grep -v '/$' )
|
|
do
|
|
echo "-> Deleting /$file ..."
|
|
if [[ $f_flag -eq 1 ]]; then rm /$file; fi
|
|
done
|
|
} # end remove-kvmd-package
|
|
|
|
restore-motd() {
|
|
if [[ $f_flag -eq 1 ]]; then
|
|
if [ -e /etc/motd.orig ]; then cp -f /etc/motd.orig /etc/motd; fi
|
|
fi
|
|
cat /etc/motd
|
|
} # end restore-motd
|
|
|
|
are-you-sure() {
|
|
invalidinput=1
|
|
while [ $invalidinput -eq 1 ]; do
|
|
read -p "Uninstall PiKVM from this system. Are you sure? [y/n] " SURE
|
|
case $SURE in
|
|
Y|y) invalidinput=0 ;;
|
|
N|n) echo "Exiting."; exit 0 ;;
|
|
*) echo "Invalid input. try again."; invalidinput=1 ;;
|
|
esac
|
|
done
|
|
} # end are-you-sure fn
|
|
|
|
|
|
|
|
### MAIN STARTS HERE ###
|
|
if [ -e /usr/local/bin/rw ]; then rw; fi
|
|
mkdir -p /var/cache/kvmd # create directory in case it hasn't been created yet (e.g. installer hasn't been run)
|
|
export INSTLOG="/var/cache/kvmd/installed_ver.txt"
|
|
export LOGFILE="/var/cache/kvmd/uninstall.log"; rm -f $LOGFILE
|
|
if [ ! -e $INSTLOG ]; then
|
|
echo "Install log missing. Nothing to do." | tee -a $LOGFILE
|
|
exit 1
|
|
fi
|
|
|
|
if [[ "$1" == "-f" ]]; then
|
|
printf "\n*** Actually perform destructive commands option set.\n\n"
|
|
f_flag=1
|
|
else
|
|
printf "\n*** Only SHOWING what will be performed. Re-run with -f to actually perform destructive commands.\n\n"
|
|
f_flag=0
|
|
fi
|
|
|
|
are-you-sure
|
|
save-configs | tee -a $LOGFILE
|
|
stop-disable-kvmd | tee -a $LOGFILE
|
|
restore-motd | tee -a $LOGFILE
|
|
remove-kvmd-package | tee -a $LOGFILE
|
|
if [ -e /usr/local/bin/ro ]; then ro; fi
|