mirror of
https://github.com/dw-0/kiauh.git
synced 2025-10-29 08:26:07 +01:00
122 lines
3.9 KiB
Bash
122 lines
3.9 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
#=======================================================================#
|
|
# 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
|
|
|
|
#=================================================#
|
|
#======== INSTALL GCODE_SHELL_COMMAND.PY =========#
|
|
#=================================================#
|
|
|
|
function setup_gcode_shell_command() {
|
|
top_border
|
|
echo -e "| You are about to install the 'G-Code Shell Command' |"
|
|
echo -e "| extension. Please make sure to read the instructions |"
|
|
echo -e "| before you continue and remember that potential risks |"
|
|
echo -e "| can be involved after installing this extension! |"
|
|
blank_line
|
|
echo -e "| ${red}You accept that you are doing this on your own risk!${white} |"
|
|
bottom_border
|
|
|
|
local yn
|
|
while true; do
|
|
read -p "${cyan}###### Do you want to continue? (Y/n):${white} " yn
|
|
case "${yn}" in
|
|
Y|y|Yes|yes|"")
|
|
select_msg "Yes"
|
|
|
|
if [[ ! -d "${KLIPPER_DIR}/klippy/extras" ]]; then
|
|
print_error "Folder ~/klipper/klippy/extras not found!\n Klipper not installed yet?"
|
|
return
|
|
fi
|
|
|
|
status_msg "Installing gcode shell command extension ..."
|
|
|
|
if [[ ! -f "${KLIPPER_DIR}/klippy/extras/gcode_shell_command.py" ]]; then
|
|
install_gcode_shell_command
|
|
else
|
|
echo; warn_msg "File 'gcode_shell_command.py' already exists in the destination location!"
|
|
|
|
while true; do
|
|
read -p "${cyan}###### Do you want to overwrite it? (Y/n):${white} " yn
|
|
case "${yn}" in
|
|
Y|y|Yes|yes|"")
|
|
select_msg "Yes"
|
|
rm -f "${KLIPPER_DIR}/klippy/extras/gcode_shell_command.py"
|
|
install_gcode_shell_command
|
|
break;;
|
|
N|n|No|no)
|
|
select_msg "No"
|
|
break;;
|
|
*)
|
|
error_msg "Invalid Input!";;
|
|
esac
|
|
done
|
|
fi
|
|
return;;
|
|
N|n|No|no)
|
|
select_msg "No"
|
|
return;;
|
|
*)
|
|
error_msg "Invalid Input!";;
|
|
esac
|
|
done
|
|
}
|
|
|
|
function install_gcode_shell_command() {
|
|
do_action_service "stop" "klipper"
|
|
status_msg "Copy 'gcode_shell_command.py' to '${KLIPPER_DIR}/klippy/extras' ..."
|
|
|
|
if cp "${KIAUH_SRCDIR}/resources/gcode_shell_command.py" "${KLIPPER_DIR}/klippy/extras"; then
|
|
ok_msg "Done!"
|
|
else
|
|
error_msg "Cannot copy file to target destination...Exiting!"
|
|
return 1
|
|
fi
|
|
|
|
local yn
|
|
while true; do
|
|
echo
|
|
read -p "${cyan}###### Create an example shell command? (Y/n):${white} " yn
|
|
case "${yn}" in
|
|
Y|y|Yes|yes|"")
|
|
select_msg "Yes"
|
|
create_example_shell_command
|
|
break;;
|
|
N|n|No|no)
|
|
select_msg "No"
|
|
break;;
|
|
esac
|
|
done
|
|
|
|
do_action_service "restart" "klipper"
|
|
print_confirm "Shell command extension installed!"
|
|
return
|
|
}
|
|
|
|
function create_example_shell_command() {
|
|
### create a backup of the config folder
|
|
backup_klipper_config_dir
|
|
|
|
local printer_cfgs path
|
|
printer_cfgs=$(find "$(get_klipper_cfg_dir)" -type f -name "printer.cfg" | sort)
|
|
|
|
for cfg in ${printer_cfgs}; do
|
|
path=$(echo "${cfg}" | rev | cut -d"/" -f2- | rev)
|
|
|
|
if [[ ! -f "${path}/shell_command.cfg" ]]; then
|
|
status_msg "Copy shell_command.cfg to ${path} ..."
|
|
cp "${KIAUH_SRCDIR}/resources/shell_command.cfg" "${path}"
|
|
ok_msg "${path}/shell_command.cfg created!"
|
|
### write include to the very first line of the printer.cfg
|
|
sed -i "1 i [include shell_command.cfg]" "${cfg}"
|
|
fi
|
|
done
|
|
} |