mirror of
https://github.com/dw-0/kiauh.git
synced 2025-12-13 18:44:29 +05:00
script: simplify service action methods
This commit is contained in:
@@ -82,7 +82,8 @@ change_klipper_cfg_path(){
|
||||
|
||||
set_klipper_cfg_path(){
|
||||
### stop services
|
||||
klipper_service "stop" && moonraker_service "stop"
|
||||
do_action_service "stop" "klipper"
|
||||
do_action_service "stop" "moonraker"
|
||||
|
||||
### copy config files to new klipper config folder
|
||||
if [ ! -z "$old_klipper_cfg_loc" ] && [ -d "$old_klipper_cfg_loc" ]; then
|
||||
@@ -137,77 +138,17 @@ set_klipper_cfg_path(){
|
||||
sudo systemctl daemon-reload
|
||||
|
||||
### restart services
|
||||
klipper_service "restart" && moonraker_service "restart"
|
||||
do_action_service "restart" "klipper"
|
||||
do_action_service "restart" "moonraker"
|
||||
}
|
||||
|
||||
source_kiauh_ini(){
|
||||
source $INI_FILE
|
||||
}
|
||||
|
||||
klipper_service(){
|
||||
### set a variable for the ok and status messages
|
||||
[ "$1" == "start" ] && ACTION1="started" && ACTION2="Starting"
|
||||
[ "$1" == "stop" ] && ACTION1="stopped" && ACTION2="Stopping"
|
||||
[ "$1" == "restart" ] && ACTION1="restarted" && ACTION2="Restarting"
|
||||
|
||||
if ls /etc/systemd/system/klipper-*.service 2>/dev/null 1>&2; then
|
||||
INSTANCE_COUNT=$(systemctl list-units --full -all -t service --no-legend | grep -E "klipper-[[:digit:]].service" | wc -l)
|
||||
INSTANCE=1
|
||||
status_msg "$ACTION2 $INSTANCE_COUNT Klipper Services ..."
|
||||
while [ $INSTANCE -le $INSTANCE_COUNT ]; do
|
||||
sudo systemctl $1 klipper-$INSTANCE && ok_msg "Klipper Service #$INSTANCE $ACTION1!"
|
||||
### instance counter +1
|
||||
INSTANCE=$(expr $INSTANCE + 1)
|
||||
done
|
||||
elif [ "$(systemctl list-units --full -all -t service --no-legend | grep -E "klipper.service")" ]; then
|
||||
status_msg "$ACTION2 Klipper Service ..."
|
||||
sudo systemctl $1 klipper && ok_msg "Klipper Service $ACTION1!"
|
||||
fi
|
||||
}
|
||||
|
||||
moonraker_service(){
|
||||
### set a variable for the ok and status messages
|
||||
[ "$1" == "start" ] && ACTION1="started" && ACTION2="Starting"
|
||||
[ "$1" == "stop" ] && ACTION1="stopped" && ACTION2="Stopping"
|
||||
[ "$1" == "restart" ] && ACTION1="restarted" && ACTION2="Restarting"
|
||||
|
||||
if ls /etc/systemd/system/moonraker-*.service 2>/dev/null 1>&2; then
|
||||
INSTANCE_COUNT=$(systemctl list-units --full -all -t service --no-legend | grep -E "moonraker-[[:digit:]].service" | wc -l)
|
||||
INSTANCE=1
|
||||
status_msg "$ACTION2 $INSTANCE_COUNT Moonraker Services ..."
|
||||
while [ $INSTANCE -le $INSTANCE_COUNT ]; do
|
||||
sudo systemctl $1 moonraker-$INSTANCE && ok_msg "Moonraker Service #$INSTANCE $ACTION1!"
|
||||
### instance counter +1
|
||||
INSTANCE=$(expr $INSTANCE + 1)
|
||||
done
|
||||
elif [ "$(systemctl list-units --full -all -t service --no-legend | grep -E "moonraker.service")" ]; then
|
||||
status_msg "$ACTION2 Moonraker Service ..."
|
||||
sudo systemctl $1 moonraker && ok_msg "Moonraker Service $ACTION1!"
|
||||
fi
|
||||
}
|
||||
|
||||
dwc_service(){
|
||||
### set a variable for the ok and status messages
|
||||
[ "$1" == "start" ] && ACTION1="started" && ACTION2="Starting"
|
||||
[ "$1" == "stop" ] && ACTION1="stopped" && ACTION2="Stopping"
|
||||
[ "$1" == "restart" ] && ACTION1="restarted" && ACTION2="Restarting"
|
||||
|
||||
if ls /etc/systemd/system/dwc-*.service 2>/dev/null 1>&2; then
|
||||
INSTANCE_COUNT=$(systemctl list-units --full -all -t service --no-legend | grep -E "dwc-[[:digit:]].service" | wc -l)
|
||||
INSTANCE=1
|
||||
status_msg "$ACTION2 $INSTANCE_COUNT DWC-for-Klipper-Socket Services ..."
|
||||
while [ $INSTANCE -le $INSTANCE_COUNT ]; do
|
||||
sudo systemctl $1 dwc-$INSTANCE && ok_msg "DWC-for-Klipper-Socket Service #$INSTANCE $ACTION1!"
|
||||
### instance counter +1
|
||||
INSTANCE=$(expr $INSTANCE + 1)
|
||||
done
|
||||
elif [ "$(systemctl list-units --full -all -t service --no-legend | grep -E "dwc.service")" ]; then
|
||||
status_msg "$ACTION2 DWC-for-Klipper-Socket Service ..."
|
||||
sudo systemctl $1 dwc && ok_msg "DWC-for-Klipper-Socket Service $ACTION1!"
|
||||
fi
|
||||
}
|
||||
|
||||
octoprint_service(){
|
||||
do_action_service(){
|
||||
shopt -s extglob # enable extended globbing
|
||||
SERVICES="$SYSTEMDDIR/$2?(-*([0-9])).service"
|
||||
### set a variable for the ok and status messages
|
||||
[ "$1" == "start" ] && ACTION1="started" && ACTION2="Starting"
|
||||
[ "$1" == "stop" ] && ACTION1="stopped" && ACTION2="Stopping"
|
||||
@@ -215,30 +156,27 @@ octoprint_service(){
|
||||
[ "$1" == "enable" ] && ACTION1="enabled" && ACTION2="Enabling"
|
||||
[ "$1" == "disable" ] && ACTION1="disabled" && ACTION2="Disabling"
|
||||
|
||||
if ls /etc/systemd/system/octoprint-*.service 2>/dev/null 1>&2; then
|
||||
INSTANCE=1
|
||||
INSTANCE_COUNT=$(systemctl list-unit-files | grep -E "octoprint.*" | wc -l)
|
||||
status_msg "$ACTION2 $INSTANCE_COUNT OctoPrint Services ..."
|
||||
while [ $INSTANCE -le $INSTANCE_COUNT ]; do
|
||||
sudo systemctl $1 octoprint-$INSTANCE && ok_msg "OctoPrint Service #$INSTANCE $ACTION1!"
|
||||
### instance counter +1
|
||||
INSTANCE=$(expr $INSTANCE + 1)
|
||||
if ls $SERVICES 2>/dev/null 1>&2; then
|
||||
for service in $(ls $SERVICES | rev | cut -d"/" -f1 | rev); do
|
||||
status_msg "$ACTION2 $service ..."
|
||||
sudo systemctl $1 "$service"
|
||||
ok_msg "$service $ACTION1!"
|
||||
done
|
||||
elif [ "$(systemctl list-unit-files | grep -E "octoprint.*")" ]; then
|
||||
status_msg "$ACTION2 OctoPrint Service ..."
|
||||
sudo systemctl $1 octoprint && ok_msg "OctoPrint Service $ACTION1!"
|
||||
else
|
||||
ERROR_MSG="Service '$2' not found!" && print_msg && clear_msg
|
||||
fi
|
||||
shopt -u extglob # disable extended globbing
|
||||
}
|
||||
|
||||
toggle_octoprint_service(){
|
||||
if systemctl list-unit-files | grep -E "octoprint.*" | grep "enabled" &>/dev/null; then
|
||||
octoprint_service "stop"
|
||||
octoprint_service "disable"
|
||||
do_action_service "stop" "octoprint"
|
||||
do_action_service "disable" "octoprint"
|
||||
sleep 2
|
||||
CONFIRM_MSG=" OctoPrint Service is now >>> DISABLED <<< !"
|
||||
elif systemctl list-unit-files | grep -E "octoprint.*" | grep "disabled" &>/dev/null; then
|
||||
octoprint_service "enable"
|
||||
octoprint_service "start"
|
||||
do_action_service "enable" "octoprint"
|
||||
do_action_service "start" "octoprint"
|
||||
sleep 2
|
||||
CONFIRM_MSG=" OctoPrint Service is now >>> ENABLED <<< !"
|
||||
else
|
||||
@@ -370,7 +308,7 @@ setup_gcode_shell_command(){
|
||||
}
|
||||
|
||||
install_gcode_shell_command(){
|
||||
klipper_service "stop"
|
||||
do_action_service "stop" "klipper"
|
||||
status_msg "Copy 'gcode_shell_command.py' to '$KLIPPER_DIR/klippy/extras' ..."
|
||||
cp ${SRCDIR}/kiauh/resources/gcode_shell_command.py $KLIPPER_DIR/klippy/extras
|
||||
while true; do
|
||||
@@ -412,7 +350,7 @@ install_gcode_shell_command(){
|
||||
esac
|
||||
done
|
||||
ok_msg "Shell command extension installed!"
|
||||
klipper_service "restart"
|
||||
do_action_service "restart" "klipper"
|
||||
}
|
||||
|
||||
create_minimal_cfg(){
|
||||
|
||||
@@ -286,18 +286,18 @@ select_mcu_id(){
|
||||
}
|
||||
|
||||
flash_mcu(){
|
||||
klipper_service "stop"
|
||||
do_action_service "stop" "klipper"
|
||||
if ! make flash FLASH_DEVICE="${mcu_list[$mcu_index]}" ; then
|
||||
warn_msg "Flashing failed!"
|
||||
warn_msg "Please read the console output above!"
|
||||
else
|
||||
ok_msg "Flashing successfull!"
|
||||
fi
|
||||
klipper_service "start"
|
||||
do_action_service "start" "klipper"
|
||||
}
|
||||
|
||||
flash_mcu_sd(){
|
||||
klipper_service "stop"
|
||||
do_action_service "stop" "klipper"
|
||||
|
||||
### write each supported board to the array to make it selectable
|
||||
board_list=()
|
||||
@@ -362,7 +362,7 @@ flash_mcu_sd(){
|
||||
ok_msg "Flashing successfull!"
|
||||
fi
|
||||
|
||||
klipper_service "start"
|
||||
do_action_service "start" "klipper"
|
||||
}
|
||||
|
||||
build_fw(){
|
||||
|
||||
@@ -163,7 +163,7 @@ install_kiauh_macros(){
|
||||
ok_msg "$klipper_cfg_loc/kiauh_macros.cfg created!"
|
||||
fi
|
||||
### restart klipper service to parse the modified printer.cfg
|
||||
klipper_service "restart"
|
||||
do_action_service "restart" "klipper"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
@@ -352,9 +352,9 @@ process_octoprint_dialog(){
|
||||
Y|y|Yes|yes|"")
|
||||
echo -e "###### > Yes"
|
||||
status_msg "Stopping OctoPrint ..."
|
||||
octoprint_service "stop" && ok_msg "OctoPrint service stopped!"
|
||||
do_action_service "stop" "octoprint" && ok_msg "OctoPrint service stopped!"
|
||||
status_msg "Disabling OctoPrint ..."
|
||||
octoprint_service "disable" && ok_msg "OctoPrint service disabled!"
|
||||
do_action_service "disable" "octoprint" && ok_msg "OctoPrint service disabled!"
|
||||
break;;
|
||||
N|n|No|no)
|
||||
echo -e "###### > No"
|
||||
|
||||
@@ -59,46 +59,26 @@ main_menu(){
|
||||
while true; do
|
||||
read -p "${cyan}Perform action:${default} " action; echo
|
||||
case "$action" in
|
||||
"start klipper")
|
||||
do_action "klipper_service start" "main_ui";;
|
||||
"stop klipper")
|
||||
do_action "klipper_service stop" "main_ui";;
|
||||
"restart klipper")
|
||||
do_action "klipper_service restart" "main_ui";;
|
||||
"start moonraker")
|
||||
do_action "moonraker_service start" "main_ui";;
|
||||
"stop moonraker")
|
||||
do_action "moonraker_service stop" "main_ui";;
|
||||
"restart moonraker")
|
||||
do_action "moonraker_service restart" "main_ui";;
|
||||
"start dwc")
|
||||
do_action "dwc_service start" "main_ui";;
|
||||
"stop dwc")
|
||||
do_action "dwc_service stop" "main_ui";;
|
||||
"restart dwc")
|
||||
do_action "dwc_service restart" "main_ui";;
|
||||
"start octoprint")
|
||||
do_action "octoprint_service start" "main_ui";;
|
||||
"stop octoprint")
|
||||
do_action "octoprint_service stop" "main_ui";;
|
||||
"restart octoprint")
|
||||
do_action "octoprint_service restart" "main_ui";;
|
||||
update)
|
||||
do_action "update_kiauh" "main_ui";;
|
||||
0)
|
||||
do_action "upload_selection" "main_ui";;
|
||||
1)
|
||||
clear && install_menu && break;;
|
||||
2)
|
||||
clear && update_menu && break;;
|
||||
3)
|
||||
clear && remove_menu && break;;
|
||||
4)
|
||||
clear && advanced_menu && break;;
|
||||
5)
|
||||
clear && backup_menu && break;;
|
||||
6)
|
||||
clear && settings_menu && break;;
|
||||
"start klipper") do_action_service "start" "klipper"; main_ui;;
|
||||
"stop klipper") do_action_service "stop" "klipper"; main_ui;;
|
||||
"restart klipper") do_action_service "restart" "klipper"; main_ui;;
|
||||
"start moonraker") do_action_service "start" "moonraker"; main_ui;;
|
||||
"stop moonraker") do_action_service "stop" "moonraker"; main_ui;;
|
||||
"restart moonraker")do_action_service "restart" "moonraker"; main_ui;;
|
||||
"start dwc") do_action_service "start" "dwc"; main_ui;;
|
||||
"stop dwc") do_action_service "stop" "dwc"; main_ui;;
|
||||
"restart dwc") do_action_service "restart" "dwc"; main_ui;;
|
||||
"start octoprint") do_action_service "start" "octoprint"; main_ui;;
|
||||
"stop octoprint") do_action_service "stop" "octoprint"; main_ui;;
|
||||
"restart octoprint") do_action_service "restart" "octoprint"; main_ui;;
|
||||
update) do_action "update_kiauh" "main_ui";;
|
||||
0) do_action "upload_selection" "main_ui";;
|
||||
1) clear && install_menu && break;;
|
||||
2) clear && update_menu && break;;
|
||||
3) clear && remove_menu && break;;
|
||||
4) clear && advanced_menu && break;;
|
||||
5) clear && backup_menu && break;;
|
||||
6) clear && settings_menu && break;;
|
||||
Q|q)
|
||||
echo -e "${green}###### Happy printing! ######${default}"; echo
|
||||
exit -1;;
|
||||
|
||||
@@ -202,7 +202,7 @@ migrate_custompios(){
|
||||
}
|
||||
|
||||
update_klipper(){
|
||||
klipper_service "stop"
|
||||
do_action_service "stop" "klipper"
|
||||
if [ ! -d $KLIPPER_DIR ]; then
|
||||
cd ${HOME} && git clone $KLIPPER_REPO
|
||||
else
|
||||
@@ -240,18 +240,18 @@ update_klipper(){
|
||||
fi
|
||||
update_log_paths "klipper"
|
||||
ok_msg "Update complete!"
|
||||
klipper_service "restart"
|
||||
do_action_service "restart" "klipper"
|
||||
}
|
||||
|
||||
update_dwc2fk(){
|
||||
dwc_service "stop"
|
||||
do_action_service "stop" "dwc"
|
||||
bb4u "dwc2"
|
||||
if [ ! -d $DWC2FK_DIR ]; then
|
||||
cd ${HOME} && git clone $DWC2FK_REPO
|
||||
else
|
||||
cd $DWC2FK_DIR && git pull
|
||||
fi
|
||||
dwc_service "start"
|
||||
do_action_service "start" "dwc"
|
||||
}
|
||||
|
||||
update_dwc2(){
|
||||
@@ -274,7 +274,7 @@ update_fluidd(){
|
||||
}
|
||||
|
||||
update_moonraker(){
|
||||
moonraker_service "stop"
|
||||
do_action_service "stop" "moonraker"
|
||||
bb4u "moonraker"
|
||||
status_msg "Updating Moonraker ..."
|
||||
cd $MOONRAKER_DIR
|
||||
@@ -301,7 +301,7 @@ update_moonraker(){
|
||||
fi
|
||||
update_log_paths "moonraker"
|
||||
ok_msg "Update complete!"
|
||||
moonraker_service "restart"
|
||||
do_action_service "restart" "moonraker"
|
||||
}
|
||||
|
||||
update_klipperscreen(){
|
||||
|
||||
Reference in New Issue
Block a user