refactor: patch only necessary update manager sections upon webif install

Signed-off-by: Dominik Willner th33xitus@gmail.com
This commit is contained in:
th33xitus
2022-04-21 22:12:32 +02:00
parent a0ca25a99a
commit aa446e1db7
5 changed files with 87 additions and 23 deletions

View File

@@ -28,7 +28,13 @@ function install_klipperscreen(){
error="${error} Please upgrade Python."
print_error "${error}" && return
fi
### install KlipperScreen
klipperscreen_setup
### add klipperscreen to the update manager in moonraker.conf
patch_klipperscreen_update_manager
do_action_service "restart" "KlipperScreen"
}
@@ -174,3 +180,30 @@ function compare_klipperscreen_versions(){
fi
echo "${versions}"
}
#================================================#
#=================== HELPERS ====================#
#================================================#
function patch_klipperscreen_update_manager(){
local moonraker_configs
moonraker_configs=$(find "$(get_klipper_cfg_dir)" -type f -name "moonraker.conf")
for conf in ${moonraker_configs}; do
status_msg "Adding KlipperScreen to update manager in file:\n ${conf}"
### add new line to conf if it doesn't end with one
[[ $(tail -c1 "${conf}" | wc -l) -eq 0 ]] && echo "" >> "${conf}"
### add KlipperScreens update manager section to moonraker.conf
if grep -Eq "[update_manager KlipperScreen]" "${conf}"; then
/bin/sh -c "cat >> ${conf}" << MOONRAKER_CONF
[update_manager KlipperScreen]
type: git_repo
path: ${HOME}/KlipperScreen
origin: https://github.com/jordanruthe/KlipperScreen.git
env: ${HOME}/.KlipperScreen-env/bin/python
requirements: scripts/KlipperScreen-requirements.txt
install_script: scripts/KlipperScreen-install.sh
MOONRAKER_CONF
fi
done
}