Compare commits
7 Commits
ruben-poda
...
v4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
442980dbd0 | ||
|
|
798e56f4dc | ||
|
|
9d90daec7f | ||
|
|
f25726cfed | ||
|
|
f46b099b74 | ||
|
|
03be46f012 | ||
|
|
c11e628c55 |
@@ -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 eihter not connected or not detected!"
|
||||
print_error "No MCU found!\n MCU either 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 eihter not connected or not detected!"
|
||||
print_error "No MCU found!\n MCU either not connected or not detected!"
|
||||
return
|
||||
fi
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ function install_fluidd() {
|
||||
while true; do
|
||||
echo
|
||||
top_border
|
||||
echo -e "| Install MJGP-Streamer for webcam support? |"
|
||||
echo -e "| Install MJPG-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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,33 +28,35 @@ 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_services
|
||||
local klipper_initd_service
|
||||
local klipper_systemd_services
|
||||
local python_version="${1}" user_input=()
|
||||
klipper_services=$(klipper_exists)
|
||||
local error
|
||||
|
||||
klipper_initd_service=$(klipper_initd)
|
||||
klipper_systemd_services=$(klipper_systemd)
|
||||
user_input+=("${python_version}")
|
||||
|
||||
### return early if klipper already exists
|
||||
if [[ -n ${klipper_services} ]]; then
|
||||
local error="At least one Klipper service is already installed:"
|
||||
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:"
|
||||
|
||||
for s in ${klipper_services}; do
|
||||
for s in ${klipper_systemd_services}; do
|
||||
log_info "Found Klipper service: ${s}"
|
||||
error="${error}\n ➔ ${s}"
|
||||
done
|
||||
|
||||
print_error "${error}" && return
|
||||
fi
|
||||
|
||||
[[ -n ${error} ]] && print_error "${error}" && return
|
||||
|
||||
### ask for amount of instances to create
|
||||
top_border
|
||||
echo -e "| Please select the number of Klipper instances to set |"
|
||||
|
||||
@@ -45,7 +45,7 @@ function install_mainsail() {
|
||||
while true; do
|
||||
echo
|
||||
top_border
|
||||
echo -e "| Install MJGP-Streamer for webcam support? |"
|
||||
echo -e "| Install MJPG-Streamer for webcam support? |"
|
||||
bottom_border
|
||||
read -p "${cyan}###### Please select (y/N):${white} " yn
|
||||
case "${yn}" in
|
||||
@@ -564,8 +564,9 @@ function select_mainsail_port() {
|
||||
function enable_mainsail_remotemode() {
|
||||
[[ ! -f "${MAINSAIL_DIR}/config.json" ]] && return
|
||||
|
||||
rm -f "${MAINSAIL_DIR}/config.json"
|
||||
echo -e "{\n \"remoteMode\":true\n}" >> "${MAINSAIL_DIR}/config.json"
|
||||
status_msg "Setting instance storage location to 'browser' ..."
|
||||
sed -i 's|"instancesDB": "moonraker"|"instancesDB": "browser"|' "${MAINSAIL_DIR}/config.json"
|
||||
ok_msg "Done!"
|
||||
}
|
||||
|
||||
function patch_mainsail_update_manager() {
|
||||
@@ -597,4 +598,4 @@ MOONRAKER_CONF
|
||||
if [[ ${patched} == "true" ]]; then
|
||||
do_action_service "restart" "moonraker"
|
||||
fi
|
||||
}
|
||||
}
|
||||
|
||||
@@ -208,7 +208,7 @@ function moonraker_setup() {
|
||||
create_moonraker_service "${instance_arr[@]}"
|
||||
|
||||
### step 5: create polkit rules for moonraker
|
||||
moonraker_polkit || true
|
||||
install_moonraker_polkit || true
|
||||
|
||||
### step 6: enable and start all instances
|
||||
do_action_service "enable" "moonraker"
|
||||
@@ -340,9 +340,7 @@ 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
|
||||
@@ -379,8 +377,20 @@ function print_mr_ip_list() {
|
||||
### introduced due to
|
||||
### https://github.com/Arksine/moonraker/issues/349
|
||||
### https://github.com/Arksine/moonraker/pull/346
|
||||
function moonraker_polkit() {
|
||||
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
|
||||
|
||||
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
|
||||
@@ -389,14 +399,25 @@ function 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
|
||||
|
||||
[[ -z ${has_sup} ]] && echo "reloading services!!!" && sudo systemctl daemon-reload
|
||||
if [[ ${require_daemon_reload} == "true" ]]; then
|
||||
status_msg "Reloading unit files ..."
|
||||
sudo systemctl daemon-reload
|
||||
ok_msg "Unit files reloaded!"
|
||||
fi
|
||||
|
||||
### execute moonrakers policykit-rules script
|
||||
"${HOME}"/moonraker/scripts/set-policykit-rules.sh
|
||||
### 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
|
||||
}
|
||||
|
||||
#==================================================#
|
||||
@@ -518,7 +539,7 @@ function update_moonraker() {
|
||||
fi
|
||||
|
||||
### required due to https://github.com/Arksine/moonraker/issues/349
|
||||
moonraker_polkit
|
||||
install_moonraker_polkit || true
|
||||
|
||||
ok_msg "Update complete!"
|
||||
do_action_service "restart" "moonraker"
|
||||
|
||||
@@ -43,53 +43,57 @@ 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
|
||||
|
||||
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
|
||||
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
|
||||
done
|
||||
|
||||
change_klipper_repo_menu
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user