1 Commits

Author SHA1 Message Date
Ruben P
d190a60ff7 add an option to terminate or not subprocess
default is true (same behavior as now)
2022-08-29 23:17:51 +02:00
7 changed files with 75 additions and 102 deletions

View File

@@ -18,6 +18,7 @@ class ShellCommand:
self.command = shlex.split(cmd)
self.timeout = config.getfloat('timeout', 2., above=0.)
self.verbose = config.getboolean('verbose', True)
self.terminate = config.getboolean('terminate', True)
self.proc_fd = None
self.partial_output = ""
self.gcode.register_mux_command(
@@ -68,7 +69,7 @@ class ShellCommand:
if proc.poll() is not None:
complete = True
break
if not complete:
if not complete and self.terminate:
proc.terminate()
if self.verbose:
if self.partial_output:

View File

@@ -102,7 +102,7 @@ function print_detected_mcu_to_screen() {
local i=1
if (( ${#mcu_list[@]} < 1 )); then
print_error "No MCU found!\n MCU either not connected or not detected!"
print_error "No MCU found!\n MCU eihter not connected or not detected!"
return
fi
@@ -121,7 +121,7 @@ function select_mcu_id() {
local i=0 sel_index=0 method=${1}
if (( ${#mcu_list[@]} < 1 )); then
print_error "No MCU found!\n MCU either not connected or not detected!"
print_error "No MCU found!\n MCU eihter not connected or not detected!"
return
fi

View File

@@ -45,7 +45,7 @@ function install_fluidd() {
while true; do
echo
top_border
echo -e "| Install MJPG-Streamer for webcam support? |"
echo -e "| Install MJGP-Streamer for webcam support? |"
bottom_border
read -p "${cyan}###### Please select (y/N):${white} " yn
case "${yn}" in
@@ -423,4 +423,4 @@ MOONRAKER_CONF
if [[ ${patched} == "true" ]]; then
do_action_service "restart" "moonraker"
fi
}
}

View File

@@ -28,34 +28,32 @@ function klipper_systemd() {
echo "${services}"
}
function klipper_exists() {
local services
[[ -n $(klipper_initd) ]] && services+="$(klipper_initd) "
[[ -n $(klipper_systemd) ]] && services+="$(klipper_systemd)"
echo "${services}"
}
function klipper_setup_dialog() {
status_msg "Initializing Klipper installation ..."
local klipper_initd_service
local klipper_systemd_services
local klipper_services
local python_version="${1}" user_input=()
local error
klipper_initd_service=$(klipper_initd)
klipper_systemd_services=$(klipper_systemd)
klipper_services=$(klipper_exists)
user_input+=("${python_version}")
### return early if klipper already exists
if [[ -n ${klipper_initd_service} ]]; then
error="Unsupported Klipper SysVinit service detected:"
error="${error}\n ➔ ${klipper_initd_service}"
error="${error}\n Please re-install Klipper with KIAUH!"
log_info "Unsupported Klipper SysVinit service detected: ${klipper_initd_service}"
elif [[ -n ${klipper_systemd_services} ]]; then
error="At least one Klipper service is already installed:"
if [[ -n ${klipper_services} ]]; then
local error="At least one Klipper service is already installed:"
for s in ${klipper_systemd_services}; do
for s in ${klipper_services}; do
log_info "Found Klipper service: ${s}"
error="${error}\n ➔ ${s}"
done
fi
[[ -n ${error} ]] && print_error "${error}" && return
print_error "${error}" && return
fi
### ask for amount of instances to create
top_border

View File

@@ -45,7 +45,7 @@ function install_mainsail() {
while true; do
echo
top_border
echo -e "| Install MJPG-Streamer for webcam support? |"
echo -e "| Install MJGP-Streamer for webcam support? |"
bottom_border
read -p "${cyan}###### Please select (y/N):${white} " yn
case "${yn}" in
@@ -564,9 +564,8 @@ function select_mainsail_port() {
function enable_mainsail_remotemode() {
[[ ! -f "${MAINSAIL_DIR}/config.json" ]] && return
status_msg "Setting instance storage location to 'browser' ..."
sed -i 's|"instancesDB": "moonraker"|"instancesDB": "browser"|' "${MAINSAIL_DIR}/config.json"
ok_msg "Done!"
rm -f "${MAINSAIL_DIR}/config.json"
echo -e "{\n \"remoteMode\":true\n}" >> "${MAINSAIL_DIR}/config.json"
}
function patch_mainsail_update_manager() {
@@ -598,4 +597,4 @@ MOONRAKER_CONF
if [[ ${patched} == "true" ]]; then
do_action_service "restart" "moonraker"
fi
}
}

View File

@@ -208,7 +208,7 @@ function moonraker_setup() {
create_moonraker_service "${instance_arr[@]}"
### step 5: create polkit rules for moonraker
install_moonraker_polkit || true
moonraker_polkit || true
### step 6: enable and start all instances
do_action_service "enable" "moonraker"
@@ -340,7 +340,9 @@ function create_moonraker_service() {
### enable mainsails remoteMode if mainsail is found
if [[ -d ${MAINSAIL_DIR} ]]; then
status_msg "Mainsail installation found! Enabling Mainsail remote mode ..."
enable_mainsail_remotemode
ok_msg "Mainsails remote mode enabled!"
fi
else
@@ -377,20 +379,8 @@ function print_mr_ip_list() {
### introduced due to
### https://github.com/Arksine/moonraker/issues/349
### https://github.com/Arksine/moonraker/pull/346
function install_moonraker_polkit() {
local POLKIT_LEGACY_FILE="/etc/polkit-1/localauthority/50-local.d/10-moonraker.pkla"
local POLKIT_FILE="/etc/polkit-1/rules.d/moonraker.rules"
local POLKIT_USR_FILE="/usr/share/polkit-1/rules.d/moonraker.rules"
local legacy_file_exists
local file_exists
local usr_file_exists
function moonraker_polkit() {
local has_sup
local require_daemon_reload="false"
legacy_file_exists=$(sudo find "${POLKIT_LEGACY_FILE}" 2> /dev/null)
file_exists=$(sudo find "${POLKIT_FILE}" 2> /dev/null)
usr_file_exists=$(sudo find "${POLKIT_USR_FILE}" 2> /dev/null)
### check for required SupplementaryGroups entry in service files
### write it to the service if it doesn't exist
@@ -399,25 +389,14 @@ function install_moonraker_polkit() {
if [[ -z ${has_sup} ]]; then
status_msg "Adding moonraker-admin supplementary group to ${service} ..."
sudo sed -i "/^Type=simple$/a SupplementaryGroups=moonraker-admin" "${service}"
require_daemon_reload="true"
ok_msg "Adding moonraker-admin supplementary group successfull!"
fi
done
if [[ ${require_daemon_reload} == "true" ]]; then
status_msg "Reloading unit files ..."
sudo systemctl daemon-reload
ok_msg "Unit files reloaded!"
fi
[[ -z ${has_sup} ]] && echo "reloading services!!!" && sudo systemctl daemon-reload
### execute moonrakers policykit-rules script only if rule files do not already exist
if [[ -z ${legacy_file_exists} && ( -z ${file_exists} || -z ${usr_file_exists} ) ]]; then
status_msg "Installing Moonraker policykit rules ..."
"${HOME}"/moonraker/scripts/set-policykit-rules.sh
ok_msg "Moonraker policykit rules installed!"
fi
return
### execute moonrakers policykit-rules script
"${HOME}"/moonraker/scripts/set-policykit-rules.sh
}
#==================================================#
@@ -539,7 +518,7 @@ function update_moonraker() {
fi
### required due to https://github.com/Arksine/moonraker/issues/349
install_moonraker_polkit || true
moonraker_polkit
ok_msg "Update complete!"
do_action_service "restart" "moonraker"

View File

@@ -43,57 +43,53 @@ function change_klipper_repo_menu() {
back_help_footer
local option
local num="^[0-9]+$"
local back="^(B|b)$"
local help="^(H|h)$"
while true; do
read -p "${cyan}###### Perform action:${white} " option
case "${option}" in
0 | "$(( option < ${#repos[@]} ))")
select_msg "Repo: ${repos[option]} Branch: ${branches[option]}"
if [[ -d ${KLIPPER_DIR} ]]; then
top_border
echo -e "| ${red}!!! ATTENTION !!!${white} |"
echo -e "| Existing Klipper folder found! Proceeding will remove | "
echo -e "| the existing Klipper folder and replace it with a | "
echo -e "| clean copy of the previously selected source repo! | "
bottom_border
if [[ ${option} =~ ${num} && ${option} -lt ${#repos[@]} ]]; then
select_msg "Repo: ${repos[option]} Branch: ${branches[option]}"
if [[ -d ${KLIPPER_DIR} ]]; then
top_border
echo -e "| ${red}!!! ATTENTION !!!${white} |"
echo -e "| Existing Klipper folder found! Proceeding will remove | "
echo -e "| the existing Klipper folder and replace it with a | "
echo -e "| clean copy of the previously selected source repo! | "
bottom_border
local yn
while true; do
read -p "${cyan}###### Proceed? (Y/n):${white} " yn
case "${yn}" in
Y|y|Yes|yes|"")
select_msg "Yes"
switch_klipper_repo "${repos[${option}]}" "${branches[${option}]}"
set_custom_klipper_repo "${repos[${option}]}" "${branches[${option}]}"
break;;
N|n|No|no)
select_msg "No"
break;;
*)
error_msg "Invalid command!";;
esac
done
else
status_msg "Set custom Klipper repository to:\n ● Repository: ${repos[${option}]}\n ● Branch: ${branches[${option}]}"
set_custom_klipper_repo "${repos[${option}]}" "${branches[${option}]}"
ok_msg "This repo will now be used for new Klipper installations!\n"
fi
elif [[ ${option} =~ ${back} ]]; then
clear && print_header
settings_menu
elif [[ ${option} =~ ${help} ]]; then
clear && print_header
show_custom_klipper_repo_help
else
error_msg "Invalid command!"
fi
local yn
while true; do
read -p "${cyan}###### Proceed? (Y/n):${white} " yn
case "${yn}" in
Y|y|Yes|yes|"")
select_msg "Yes"
switch_klipper_repo "${repos[${option}]}" "${branches[${option}]}"
set_custom_klipper_repo "${repos[${option}]}" "${branches[${option}]}"
break;;
N|n|No|no)
select_msg "No"
break;;
*)
error_msg "Invalid command!";;
esac
done
else
status_msg "Set custom Klipper repository to:\n ● Repository: ${repos[${option}]}\n ● Branch: ${branches[${option}]}"
set_custom_klipper_repo "${repos[${option}]}" "${branches[${option}]}"
ok_msg "This repo will now be used for new Klipper installations!\n"
fi
break;;
B|b)
clear && print_header
settings_menu
break;;
H|h)
clear && print_header
show_custom_klipper_repo_help
break;;
*)
error_msg "Invalid command!";;
esac
done
change_klipper_repo_menu
}