refactor: rough refactor of octoprint functions
Signed-off-by: Dominik Willner th33xitus@gmail.com
This commit is contained in:
105
scripts/install_octoprint.sh → scripts/octoprint.sh
Executable file → Normal file
105
scripts/install_octoprint.sh → scripts/octoprint.sh
Executable file → Normal file
@@ -1,7 +1,24 @@
|
|||||||
### base variables
|
#!/bin/bash
|
||||||
SYSTEMDDIR="/etc/systemd/system"
|
|
||||||
|
#=======================================================================#
|
||||||
|
# Copyright (C) 2020 - 2022 Dominik Willner <th33xitus@gmail.com> #
|
||||||
|
# #
|
||||||
|
# This file is part of KIAUH - Klipper Installation And Update Helper #
|
||||||
|
# https://github.com/th33xitus/kiauh #
|
||||||
|
# #
|
||||||
|
# This file may be distributed under the terms of the GNU GPLv3 license #
|
||||||
|
#=======================================================================#
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
### global variables
|
||||||
|
SYSTEMD="/etc/systemd/system"
|
||||||
OCTOPRINT_ENV="${HOME}/OctoPrint"
|
OCTOPRINT_ENV="${HOME}/OctoPrint"
|
||||||
|
|
||||||
|
#=================================================#
|
||||||
|
#=============== INSTALL OCTOPRINT ===============#
|
||||||
|
#=================================================#
|
||||||
|
|
||||||
octoprint_setup_dialog(){
|
octoprint_setup_dialog(){
|
||||||
status_msg "Initializing OctoPrint installation ..."
|
status_msg "Initializing OctoPrint installation ..."
|
||||||
|
|
||||||
@@ -103,7 +120,7 @@ add_to_groups(){
|
|||||||
|
|
||||||
create_single_octoprint_startscript(){
|
create_single_octoprint_startscript(){
|
||||||
### create single instance systemd service file
|
### create single instance systemd service file
|
||||||
sudo /bin/sh -c "cat > ${SYSTEMDDIR}/octoprint.service" << OCTOPRINT
|
sudo /bin/sh -c "cat > ${SYSTEMD}/octoprint.service" << OCTOPRINT
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Starts OctoPrint on startup
|
Description=Starts OctoPrint on startup
|
||||||
After=network-online.target
|
After=network-online.target
|
||||||
@@ -123,7 +140,7 @@ OCTOPRINT
|
|||||||
|
|
||||||
create_multi_octoprint_startscript(){
|
create_multi_octoprint_startscript(){
|
||||||
### create multi instance systemd service file
|
### create multi instance systemd service file
|
||||||
sudo /bin/sh -c "cat > ${SYSTEMDDIR}/octoprint-$INSTANCE.service" << OCTOPRINT
|
sudo /bin/sh -c "cat > ${SYSTEMD}/octoprint-$INSTANCE.service" << OCTOPRINT
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Starts OctoPrint instance $INSTANCE on startup
|
Description=Starts OctoPrint instance $INSTANCE on startup
|
||||||
After=network-online.target
|
After=network-online.target
|
||||||
@@ -274,3 +291,83 @@ print_op_ip_list(){
|
|||||||
i=$((i + 1))
|
i=$((i + 1))
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#=================================================#
|
||||||
|
#=============== REMOVE OCTOPRINT ================#
|
||||||
|
#=================================================#
|
||||||
|
|
||||||
|
remove_octoprint(){
|
||||||
|
###remove all octoprint services
|
||||||
|
if ls /etc/systemd/system/octoprint*.service 2>/dev/null 1>&2; then
|
||||||
|
status_msg "Removing OctoPrint Services ..."
|
||||||
|
for service in $(ls /etc/systemd/system/octoprint*.service | cut -d"/" -f5)
|
||||||
|
do
|
||||||
|
status_msg "Removing $service ..."
|
||||||
|
sudo systemctl stop $service
|
||||||
|
sudo systemctl disable $service
|
||||||
|
sudo rm -f $SYSTEMDDIR/$service
|
||||||
|
ok_msg "OctoPrint Service removed!"
|
||||||
|
done
|
||||||
|
### reloading units
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl reset-failed
|
||||||
|
fi
|
||||||
|
|
||||||
|
### remove sudoers file
|
||||||
|
if [ -f /etc/sudoers.d/octoprint-shutdown ]; then
|
||||||
|
sudo rm -rf /etc/sudoers.d/octoprint-shutdown
|
||||||
|
fi
|
||||||
|
|
||||||
|
### remove OctoPrint directory
|
||||||
|
if [ -d ${HOME}/OctoPrint ]; then
|
||||||
|
status_msg "Removing OctoPrint directory ..."
|
||||||
|
rm -rf ${HOME}/OctoPrint && ok_msg "Directory removed!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
###remove .octoprint directories
|
||||||
|
if ls -d ${HOME}/.octoprint* 2>/dev/null 1>&2; then
|
||||||
|
for folder in $(ls -d ${HOME}/.octoprint*)
|
||||||
|
do
|
||||||
|
status_msg "Removing $folder ..." && rm -rf $folder && ok_msg "Done!"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
### remove octoprint_port from ~/.kiauh.ini
|
||||||
|
sed -i "/^octoprint_port=/d" $INI_FILE
|
||||||
|
|
||||||
|
CONFIRM_MSG=" OctoPrint successfully removed!"
|
||||||
|
}
|
||||||
|
|
||||||
|
#=================================================#
|
||||||
|
#=============== OCTOPRINT STATUS ================#
|
||||||
|
#=================================================#
|
||||||
|
|
||||||
|
octoprint_status(){
|
||||||
|
ocount=0
|
||||||
|
octoprint_data=(
|
||||||
|
SERVICE
|
||||||
|
$OCTOPRINT_DIR
|
||||||
|
)
|
||||||
|
### count amount of octoprint service files in /etc/systemd/system
|
||||||
|
SERVICE_FILE_COUNT=$(ls /etc/systemd/system | grep -E "^octoprint(\-[[:digit:]]+)?\.service$" | wc -l)
|
||||||
|
|
||||||
|
### remove the "SERVICE" entry from the octoprint_data array if a octoprint service is installed
|
||||||
|
[ $SERVICE_FILE_COUNT -gt 0 ] && unset octoprint_data[0]
|
||||||
|
|
||||||
|
#count+1 for each found data-item from array
|
||||||
|
for op in "${octoprint_data[@]}"
|
||||||
|
do
|
||||||
|
if [ -e $op ]; then
|
||||||
|
ocount=$(expr $ocount + 1)
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
### display status
|
||||||
|
if [ "$ocount" == "${#octoprint_data[*]}" ]; then
|
||||||
|
OCTOPRINT_STATUS="$(printf "${green}Installed: %-5s${default}" $SERVICE_FILE_COUNT)"
|
||||||
|
elif [ "$ocount" == 0 ]; then
|
||||||
|
OCTOPRINT_STATUS="${red}Not installed!${default} "
|
||||||
|
else
|
||||||
|
OCTOPRINT_STATUS="${yellow}Incomplete!${default} "
|
||||||
|
fi
|
||||||
|
}
|
||||||
@@ -70,50 +70,6 @@ remove_fluidd(){
|
|||||||
CONFIRM_MSG="Fluidd successfully removed!"
|
CONFIRM_MSG="Fluidd successfully removed!"
|
||||||
}
|
}
|
||||||
|
|
||||||
#############################################################
|
|
||||||
#############################################################
|
|
||||||
|
|
||||||
remove_octoprint(){
|
|
||||||
###remove all octoprint services
|
|
||||||
if ls /etc/systemd/system/octoprint*.service 2>/dev/null 1>&2; then
|
|
||||||
status_msg "Removing OctoPrint Services ..."
|
|
||||||
for service in $(ls /etc/systemd/system/octoprint*.service | cut -d"/" -f5)
|
|
||||||
do
|
|
||||||
status_msg "Removing $service ..."
|
|
||||||
sudo systemctl stop $service
|
|
||||||
sudo systemctl disable $service
|
|
||||||
sudo rm -f $SYSTEMDDIR/$service
|
|
||||||
ok_msg "OctoPrint Service removed!"
|
|
||||||
done
|
|
||||||
### reloading units
|
|
||||||
sudo systemctl daemon-reload
|
|
||||||
sudo systemctl reset-failed
|
|
||||||
fi
|
|
||||||
|
|
||||||
### remove sudoers file
|
|
||||||
if [ -f /etc/sudoers.d/octoprint-shutdown ]; then
|
|
||||||
sudo rm -rf /etc/sudoers.d/octoprint-shutdown
|
|
||||||
fi
|
|
||||||
|
|
||||||
### remove OctoPrint directory
|
|
||||||
if [ -d ${HOME}/OctoPrint ]; then
|
|
||||||
status_msg "Removing OctoPrint directory ..."
|
|
||||||
rm -rf ${HOME}/OctoPrint && ok_msg "Directory removed!"
|
|
||||||
fi
|
|
||||||
|
|
||||||
###remove .octoprint directories
|
|
||||||
if ls -d ${HOME}/.octoprint* 2>/dev/null 1>&2; then
|
|
||||||
for folder in $(ls -d ${HOME}/.octoprint*)
|
|
||||||
do
|
|
||||||
status_msg "Removing $folder ..." && rm -rf $folder && ok_msg "Done!"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
### remove octoprint_port from ~/.kiauh.ini
|
|
||||||
sed -i "/^octoprint_port=/d" $INI_FILE
|
|
||||||
|
|
||||||
CONFIRM_MSG=" OctoPrint successfully removed!"
|
|
||||||
}
|
|
||||||
|
|
||||||
#############################################################
|
#############################################################
|
||||||
#############################################################
|
#############################################################
|
||||||
|
|||||||
@@ -68,36 +68,6 @@ fluidd_status(){
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
octoprint_status(){
|
|
||||||
ocount=0
|
|
||||||
octoprint_data=(
|
|
||||||
SERVICE
|
|
||||||
$OCTOPRINT_DIR
|
|
||||||
)
|
|
||||||
### count amount of octoprint service files in /etc/systemd/system
|
|
||||||
SERVICE_FILE_COUNT=$(ls /etc/systemd/system | grep -E "^octoprint(\-[[:digit:]]+)?\.service$" | wc -l)
|
|
||||||
|
|
||||||
### remove the "SERVICE" entry from the octoprint_data array if a octoprint service is installed
|
|
||||||
[ $SERVICE_FILE_COUNT -gt 0 ] && unset octoprint_data[0]
|
|
||||||
|
|
||||||
#count+1 for each found data-item from array
|
|
||||||
for op in "${octoprint_data[@]}"
|
|
||||||
do
|
|
||||||
if [ -e $op ]; then
|
|
||||||
ocount=$(expr $ocount + 1)
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
### display status
|
|
||||||
if [ "$ocount" == "${#octoprint_data[*]}" ]; then
|
|
||||||
OCTOPRINT_STATUS="$(printf "${green}Installed: %-5s${default}" $SERVICE_FILE_COUNT)"
|
|
||||||
elif [ "$ocount" == 0 ]; then
|
|
||||||
OCTOPRINT_STATUS="${red}Not installed!${default} "
|
|
||||||
else
|
|
||||||
OCTOPRINT_STATUS="${yellow}Incomplete!${default} "
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
read_local_mainsail_version(){
|
read_local_mainsail_version(){
|
||||||
unset MAINSAIL_VER_FOUND
|
unset MAINSAIL_VER_FOUND
|
||||||
if [ -e $MAINSAIL_DIR/.version ]; then
|
if [ -e $MAINSAIL_DIR/.version ]; then
|
||||||
|
|||||||
Reference in New Issue
Block a user