feat(spoolman): add update menu entry and update script
This commit is contained in:
@@ -38,6 +38,22 @@ function install_spoolman() {
|
|||||||
enable_moonraker_integration_prompt
|
enable_moonraker_integration_prompt
|
||||||
patch_spoolman_update_manager
|
patch_spoolman_update_manager
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function update_spoolman() {
|
||||||
|
### stop and disable old spoolman service
|
||||||
|
do_action_service "stop" "Spoolman"
|
||||||
|
do_action_service "disable" "Spoolman"
|
||||||
|
|
||||||
|
mv "${SPOOLMAN_DIR}" "${SPOOLMAN_DIR}_old"
|
||||||
|
|
||||||
|
setup_spoolman_folder
|
||||||
|
cp "${SPOOLMAN_DIR}_old/.env" "${SPOOLMAN_DIR}/.env"
|
||||||
|
|
||||||
|
start_install_script
|
||||||
|
|
||||||
|
rm -rf "${SPOOLMAN_DIR}_old"
|
||||||
|
}
|
||||||
|
|
||||||
function update_moonraker_configs() {
|
function update_moonraker_configs() {
|
||||||
local patched moonraker_configs regex env_port
|
local patched moonraker_configs regex env_port
|
||||||
regex="${HOME//\//\\/}\/([A-Za-z0-9_]+)\/config\/moonraker\.conf"
|
regex="${HOME//\//\\/}\/([A-Za-z0-9_]+)\/config\/moonraker\.conf"
|
||||||
@@ -205,3 +221,33 @@ function get_spoolman_status() {
|
|||||||
echo "Not installed!"
|
echo "Not installed!"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function get_local_spoolman_version() {
|
||||||
|
local version
|
||||||
|
version=$(jq -r '.version' "${SPOOLMAN_DIR}"/release_info.json)
|
||||||
|
echo "${version}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_remote_spoolman_version() {
|
||||||
|
local version
|
||||||
|
version=$(curl -s "${SPOOLMAN_REPO}" | jq -r '.tag_name')
|
||||||
|
echo "${version}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function compare_spoolman_versions() {
|
||||||
|
local local_ver remote_ver
|
||||||
|
local_ver="$(get_local_spoolman_version)"
|
||||||
|
remote_ver="$(get_remote_spoolman_version)"
|
||||||
|
|
||||||
|
if [[ ${local_ver} != "${remote_ver}" ]]; then
|
||||||
|
versions="${yellow}$(printf " %-14s" "${local_ver}")${white}"
|
||||||
|
versions+="|${green}$(printf " %-13s" "${remote_ver}")${white}"
|
||||||
|
# add spoolman to application_updates_available in kiauh.ini
|
||||||
|
add_to_application_updates "spoolman"
|
||||||
|
else
|
||||||
|
versions="${green}$(printf " %-14s" "${local_ver}")${white}"
|
||||||
|
versions+="|${green}$(printf " %-13s" "${remote_ver}")${white}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${versions}"
|
||||||
|
}
|
||||||
|
|||||||
@@ -28,23 +28,26 @@ function update_ui() {
|
|||||||
echo -e "| Touchscreen GUI: |---------------|--------------|"
|
echo -e "| Touchscreen GUI: |---------------|--------------|"
|
||||||
echo -e "| 5) [KlipperScreen] |$(compare_klipperscreen_versions)|"
|
echo -e "| 5) [KlipperScreen] |$(compare_klipperscreen_versions)|"
|
||||||
echo -e "| | | |"
|
echo -e "| | | |"
|
||||||
|
echo -e "| Spool Manager: |---------------|--------------|"
|
||||||
|
echo -e "| 6) [Spoolman] |$(compare_spoolman_versions)|"
|
||||||
|
echo -e "| | | |"
|
||||||
echo -e "| Other: |---------------|--------------|"
|
echo -e "| Other: |---------------|--------------|"
|
||||||
echo -e "| 6) [PrettyGCode] |$(compare_prettygcode_versions)|"
|
echo -e "| 7) [PrettyGCode] |$(compare_prettygcode_versions)|"
|
||||||
echo -e "| 7) [Telegram Bot] |$(compare_telegram_bot_versions)|"
|
echo -e "| 8) [Telegram Bot] |$(compare_telegram_bot_versions)|"
|
||||||
echo -e "| 8) [Obico for Klipper]|$(compare_moonraker_obico_versions)|"
|
echo -e "| 9) [Obico for Klipper]|$(compare_moonraker_obico_versions)|"
|
||||||
echo -e "| 9) [OctoEverywhere] |$(compare_octoeverywhere_versions)|"
|
echo -e "| 10) [OctoEverywhere] |$(compare_octoeverywhere_versions)|"
|
||||||
echo -e "| 10) [Mobileraker] |$(compare_mobileraker_versions)|"
|
echo -e "| 11) [Mobileraker] |$(compare_mobileraker_versions)|"
|
||||||
echo -e "| 11) [Crowsnest] |$(compare_crowsnest_versions)|"
|
echo -e "| 12) [Crowsnest] |$(compare_crowsnest_versions)|"
|
||||||
echo -e "| 12) [OctoApp] |$(compare_octoapp_versions)|"
|
echo -e "| 13) [OctoApp] |$(compare_octoapp_versions)|"
|
||||||
echo -e "| |------------------------------|"
|
echo -e "| |------------------------------|"
|
||||||
echo -e "| 13) [System] | $(check_system_updates) |"
|
echo -e "| 14) [System] | $(check_system_updates) |"
|
||||||
back_footer
|
back_footer
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_menu() {
|
function update_menu() {
|
||||||
clear -x && sudo true && clear -x # (re)cache sudo credentials so password prompt doesn't bork ui
|
clear -x && sudo true && clear -x # (re)cache sudo credentials so password prompt doesn't bork ui
|
||||||
do_action "" "update_ui"
|
do_action "" "update_ui"
|
||||||
|
|
||||||
local action
|
local action
|
||||||
while true; do
|
while true; do
|
||||||
read -p "${cyan}####### Perform action:${white} " action
|
read -p "${cyan}####### Perform action:${white} " action
|
||||||
@@ -62,20 +65,22 @@ function update_menu() {
|
|||||||
5)
|
5)
|
||||||
do_action "update_klipperscreen" "update_ui";;
|
do_action "update_klipperscreen" "update_ui";;
|
||||||
6)
|
6)
|
||||||
do_action "update_pgc_for_klipper" "update_ui";;
|
do_action "update_spoolman" "update_ui";;
|
||||||
7)
|
7)
|
||||||
do_action "update_telegram_bot" "update_ui";;
|
do_action "update_pgc_for_klipper" "update_ui";;
|
||||||
8)
|
8)
|
||||||
do_action "update_moonraker_obico" "update_ui";;
|
do_action "update_telegram_bot" "update_ui";;
|
||||||
9)
|
9)
|
||||||
do_action "update_octoeverywhere" "update_ui";;
|
do_action "update_moonraker_obico" "update_ui";;
|
||||||
10)
|
10)
|
||||||
do_action "update_mobileraker" "update_ui";;
|
do_action "update_octoeverywhere" "update_ui";;
|
||||||
11)
|
11)
|
||||||
do_action "update_crowsnest" "update_ui";;
|
do_action "update_mobileraker" "update_ui";;
|
||||||
12)
|
12)
|
||||||
do_action "update_octoapp" "update_ui";;
|
do_action "update_crowsnest" "update_ui";;
|
||||||
13)
|
13)
|
||||||
|
do_action "update_octoapp" "update_ui";;
|
||||||
|
14)
|
||||||
do_action "upgrade_system_packages" "update_ui";;
|
do_action "upgrade_system_packages" "update_ui";;
|
||||||
a)
|
a)
|
||||||
do_action "update_all" "update_ui";;
|
do_action "update_all" "update_ui";;
|
||||||
@@ -101,7 +106,7 @@ function update_all() {
|
|||||||
print_confirm "Everything is already up-to-date!"
|
print_confirm "Everything is already up-to-date!"
|
||||||
echo; break
|
echo; break
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
top_border
|
top_border
|
||||||
echo -e "| The following installations will be updated: |"
|
echo -e "| The following installations will be updated: |"
|
||||||
@@ -121,6 +126,9 @@ function update_all() {
|
|||||||
[[ "${update_arr[*]}" =~ "klipperscreen" ]] && \
|
[[ "${update_arr[*]}" =~ "klipperscreen" ]] && \
|
||||||
echo -e "| ${cyan}● KlipperScreen${white} |"
|
echo -e "| ${cyan}● KlipperScreen${white} |"
|
||||||
|
|
||||||
|
[[ "${update_arr[*]}" =~ "spoolman" ]] && \
|
||||||
|
echo -e "| ${cyan}● SpoolMan${white} |"
|
||||||
|
|
||||||
[[ "${update_arr[*]}" =~ "pgc_for_klipper" ]] && \
|
[[ "${update_arr[*]}" =~ "pgc_for_klipper" ]] && \
|
||||||
echo -e "| ${cyan}● PrettyGCode for Klipper${white} |"
|
echo -e "| ${cyan}● PrettyGCode for Klipper${white} |"
|
||||||
|
|
||||||
@@ -140,7 +148,7 @@ function update_all() {
|
|||||||
echo -e "| ${cyan}● System${white} |"
|
echo -e "| ${cyan}● System${white} |"
|
||||||
|
|
||||||
bottom_border
|
bottom_border
|
||||||
|
|
||||||
local yn
|
local yn
|
||||||
read -p "${cyan}###### Do you want to proceed? (Y/n):${white} " yn
|
read -p "${cyan}###### Do you want to proceed? (Y/n):${white} " yn
|
||||||
case "${yn}" in
|
case "${yn}" in
|
||||||
|
|||||||
Reference in New Issue
Block a user