mirror of
https://github.com/dw-0/kiauh.git
synced 2025-12-25 16:53:36 +05:00
feat: version select on startup (#499)
This commit is contained in:
@@ -6,6 +6,10 @@ indent_size = 4
|
|||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
|
||||||
[*.py]
|
[*.py]
|
||||||
max_line_length = 88
|
max_line_length = 88
|
||||||
|
|
||||||
|
[*.sh]
|
||||||
|
indent_size = 2
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ prompt and confirm by hitting ENTER.
|
|||||||
<tr>
|
<tr>
|
||||||
<th><h3><a href="https://github.com/Clon1998/mobileraker_companion">Mobileraker's Companion</a></h3></th>
|
<th><h3><a href="https://github.com/Clon1998/mobileraker_companion">Mobileraker's Companion</a></h3></th>
|
||||||
<th><h3><a href="https://octoeverywhere.com/?source=kiauh_readme">OctoEverywhere For Klipper</a></h3></th>
|
<th><h3><a href="https://octoeverywhere.com/?source=kiauh_readme">OctoEverywhere For Klipper</a></h3></th>
|
||||||
<th><h3><a href="https://github.com/crysxd/OctoPrint-OctoApp">OctoApp For Klipper</a></h3></th>
|
<th><h3><a href="https://github.com/crysxd/OctoApp-Plugin">OctoApp For Klipper</a></h3></th>
|
||||||
<th><h3></h3></th>
|
<th><h3></h3></th>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
|||||||
234
kiauh.sh
234
kiauh.sh
@@ -12,97 +12,165 @@
|
|||||||
set -e
|
set -e
|
||||||
clear
|
clear
|
||||||
|
|
||||||
function main() {
|
### sourcing all additional scripts
|
||||||
local python_command
|
KIAUH_SRCDIR="$(dirname -- "$(readlink -f "${BASH_SOURCE[0]}")")"
|
||||||
|
for script in "${KIAUH_SRCDIR}/scripts/"*.sh; do . "${script}"; done
|
||||||
|
for script in "${KIAUH_SRCDIR}/scripts/ui/"*.sh; do . "${script}"; done
|
||||||
|
|
||||||
|
#===================================================#
|
||||||
|
#=================== UPDATE KIAUH ==================#
|
||||||
|
#===================================================#
|
||||||
|
|
||||||
|
function update_kiauh() {
|
||||||
|
status_msg "Updating KIAUH ..."
|
||||||
|
|
||||||
|
cd "${KIAUH_SRCDIR}"
|
||||||
|
git reset --hard && git pull
|
||||||
|
|
||||||
|
ok_msg "Update complete! Please restart KIAUH."
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
#===================================================#
|
||||||
|
#=================== KIAUH STATUS ==================#
|
||||||
|
#===================================================#
|
||||||
|
|
||||||
|
function kiauh_update_avail() {
|
||||||
|
[[ ! -d "${KIAUH_SRCDIR}/.git" ]] && return
|
||||||
|
local origin head
|
||||||
|
|
||||||
|
cd "${KIAUH_SRCDIR}"
|
||||||
|
|
||||||
|
### abort if not on master branch
|
||||||
|
! git branch -a | grep -q "\* master" && return
|
||||||
|
|
||||||
|
### compare commit hash
|
||||||
|
git fetch -q
|
||||||
|
origin=$(git rev-parse --short=8 origin/master)
|
||||||
|
head=$(git rev-parse --short=8 HEAD)
|
||||||
|
|
||||||
|
if [[ ${origin} != "${head}" ]]; then
|
||||||
|
echo "true"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function save_startup_version() {
|
||||||
|
local launch_version
|
||||||
|
|
||||||
|
echo "${1}"
|
||||||
|
|
||||||
|
sed -i "/^version_to_launch=/d" "${INI_FILE}"
|
||||||
|
sed -i '$a'"version_to_launch=${1}" "${INI_FILE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function kiauh_update_dialog() {
|
||||||
|
[[ ! $(kiauh_update_avail) == "true" ]] && return
|
||||||
|
top_border
|
||||||
|
echo -e "|${green} New KIAUH update available! ${white}|"
|
||||||
|
hr
|
||||||
|
echo -e "|${green} View Changelog: https://git.io/JnmlX ${white}|"
|
||||||
|
blank_line
|
||||||
|
echo -e "|${yellow} It is recommended to keep KIAUH up to date. Updates ${white}|"
|
||||||
|
echo -e "|${yellow} usually contain bugfixes, important changes or new ${white}|"
|
||||||
|
echo -e "|${yellow} features. Please consider updating! ${white}|"
|
||||||
|
bottom_border
|
||||||
|
|
||||||
|
local yn
|
||||||
|
read -p "${cyan}###### Do you want to update now? (Y/n):${white} " yn
|
||||||
|
while true; do
|
||||||
|
case "${yn}" in
|
||||||
|
Y|y|Yes|yes|"")
|
||||||
|
do_action "update_kiauh"
|
||||||
|
break;;
|
||||||
|
N|n|No|no)
|
||||||
|
break;;
|
||||||
|
*)
|
||||||
|
deny_action "kiauh_update_dialog";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function launch_kiauh_v5() {
|
||||||
|
main_menu
|
||||||
|
}
|
||||||
|
|
||||||
|
function launch_kiauh_v6() {
|
||||||
local entrypoint
|
local entrypoint
|
||||||
|
|
||||||
if command -v python3 &>/dev/null; then
|
if ! command -v python3 &>/dev/null || [[ $(python3 -V | cut -d " " -f2 | cut -d "." -f2) -lt 8 ]]; then
|
||||||
python_command="python3"
|
echo "Python 3.8 or higher is not installed!"
|
||||||
elif command -v python &>/dev/null; then
|
echo "Please install Python 3.8 or higher and try again."
|
||||||
python_command="python"
|
|
||||||
else
|
|
||||||
echo "Python is not installed. Please install Python and try again."
|
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
entrypoint=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")
|
entrypoint=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")
|
||||||
|
|
||||||
${python_command} "${entrypoint}/kiauh.py"
|
export PYTHONPATH="${entrypoint}"
|
||||||
|
|
||||||
|
clear
|
||||||
|
python3 "${entrypoint}/kiauh.py"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function main() {
|
||||||
|
read_kiauh_ini "${FUNCNAME[0]}"
|
||||||
|
|
||||||
|
if [[ ${version_to_launch} -eq 5 ]]; then
|
||||||
|
launch_kiauh_v5
|
||||||
|
elif [[ ${version_to_launch} -eq 6 ]]; then
|
||||||
|
launch_kiauh_v6
|
||||||
|
else
|
||||||
|
top_border
|
||||||
|
echo -e "| ${green}KIAUH v6.0.0-alpha1 is available now!${white} |"
|
||||||
|
hr
|
||||||
|
echo -e "| View Changelog: ${magenta}https://git.io/JnmlX${white} |"
|
||||||
|
blank_line
|
||||||
|
echo -e "| KIAUH v6 was completely rewritten from the ground up. |"
|
||||||
|
echo -e "| It's based on Python 3.8 and has many improvements. |"
|
||||||
|
blank_line
|
||||||
|
echo -e "| ${yellow}NOTE: Version 6 is still in alpha, so bugs may occur!${white} |"
|
||||||
|
echo -e "| ${yellow}Yet, your feedback and bug reports are very much${white} |"
|
||||||
|
echo -e "| ${yellow}appreciated and will help finalize the release.${white} |"
|
||||||
|
hr
|
||||||
|
echo -e "| Would you like to try out KIAUH v6? |"
|
||||||
|
echo -e "| 1) Yes |"
|
||||||
|
echo -e "| 2) No |"
|
||||||
|
echo -e "| 3) Yes, remember my choice for next time |"
|
||||||
|
echo -e "| 4) No, remember my choice for next time |"
|
||||||
|
quit_footer
|
||||||
|
while true; do
|
||||||
|
read -p "${cyan}###### Select action:${white} " -e input
|
||||||
|
case "${input}" in
|
||||||
|
1)
|
||||||
|
launch_kiauh_v6
|
||||||
|
break;;
|
||||||
|
2)
|
||||||
|
launch_kiauh_v5
|
||||||
|
break;;
|
||||||
|
3)
|
||||||
|
save_startup_version 6
|
||||||
|
launch_kiauh_v6
|
||||||
|
break;;
|
||||||
|
4)
|
||||||
|
save_startup_version 5
|
||||||
|
launch_kiauh_v5
|
||||||
|
break;;
|
||||||
|
Q|q)
|
||||||
|
echo -e "${green}###### Happy printing! ######${white}"; echo
|
||||||
|
exit 0;;
|
||||||
|
*)
|
||||||
|
error_msg "Invalid Input!\n";;
|
||||||
|
esac
|
||||||
|
done && input=""
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
check_if_ratos
|
||||||
|
check_euid
|
||||||
|
init_logfile
|
||||||
|
set_globals
|
||||||
|
kiauh_update_dialog
|
||||||
|
read_kiauh_ini
|
||||||
|
init_ini
|
||||||
main
|
main
|
||||||
|
|
||||||
#### sourcing all additional scripts
|
|
||||||
#KIAUH_SRCDIR="$(dirname -- "$(readlink -f "${BASH_SOURCE[0]}")")"
|
|
||||||
#for script in "${KIAUH_SRCDIR}/scripts/"*.sh; do . "${script}"; done
|
|
||||||
#for script in "${KIAUH_SRCDIR}/scripts/ui/"*.sh; do . "${script}"; done
|
|
||||||
#
|
|
||||||
##===================================================#
|
|
||||||
##=================== UPDATE KIAUH ==================#
|
|
||||||
##===================================================#
|
|
||||||
#
|
|
||||||
#function update_kiauh() {
|
|
||||||
# status_msg "Updating KIAUH ..."
|
|
||||||
#
|
|
||||||
# cd "${KIAUH_SRCDIR}"
|
|
||||||
# git reset --hard && git pull
|
|
||||||
#
|
|
||||||
# ok_msg "Update complete! Please restart KIAUH."
|
|
||||||
# exit 0
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
##===================================================#
|
|
||||||
##=================== KIAUH STATUS ==================#
|
|
||||||
##===================================================#
|
|
||||||
#
|
|
||||||
#function kiauh_update_avail() {
|
|
||||||
# [[ ! -d "${KIAUH_SRCDIR}/.git" ]] && return
|
|
||||||
# local origin head
|
|
||||||
#
|
|
||||||
# cd "${KIAUH_SRCDIR}"
|
|
||||||
#
|
|
||||||
# ### abort if not on master branch
|
|
||||||
# ! git branch -a | grep -q "\* master" && return
|
|
||||||
#
|
|
||||||
# ### compare commit hash
|
|
||||||
# git fetch -q
|
|
||||||
# origin=$(git rev-parse --short=8 origin/master)
|
|
||||||
# head=$(git rev-parse --short=8 HEAD)
|
|
||||||
#
|
|
||||||
# if [[ ${origin} != "${head}" ]]; then
|
|
||||||
# echo "true"
|
|
||||||
# fi
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#function kiauh_update_dialog() {
|
|
||||||
# [[ ! $(kiauh_update_avail) == "true" ]] && return
|
|
||||||
# top_border
|
|
||||||
# echo -e "|${green} New KIAUH update available! ${white}|"
|
|
||||||
# hr
|
|
||||||
# echo -e "|${green} View Changelog: https://git.io/JnmlX ${white}|"
|
|
||||||
# blank_line
|
|
||||||
# echo -e "|${yellow} It is recommended to keep KIAUH up to date. Updates ${white}|"
|
|
||||||
# echo -e "|${yellow} usually contain bugfixes, important changes or new ${white}|"
|
|
||||||
# echo -e "|${yellow} features. Please consider updating! ${white}|"
|
|
||||||
# bottom_border
|
|
||||||
#
|
|
||||||
# local yn
|
|
||||||
# read -p "${cyan}###### Do you want to update now? (Y/n):${white} " yn
|
|
||||||
# while true; do
|
|
||||||
# case "${yn}" in
|
|
||||||
# Y|y|Yes|yes|"")
|
|
||||||
# do_action "update_kiauh"
|
|
||||||
# break;;
|
|
||||||
# N|n|No|no)
|
|
||||||
# break;;
|
|
||||||
# *)
|
|
||||||
# deny_action "kiauh_update_dialog";;
|
|
||||||
# esac
|
|
||||||
# done
|
|
||||||
#}
|
|
||||||
#
|
|
||||||
#check_euid
|
|
||||||
#init_logfile
|
|
||||||
#set_globals
|
|
||||||
#kiauh_update_dialog
|
|
||||||
#main_menu
|
|
||||||
|
|||||||
@@ -45,13 +45,13 @@ function backup_config_dir() {
|
|||||||
for folder in ${config_pathes}; do
|
for folder in ${config_pathes}; do
|
||||||
if [[ -d ${folder} ]]; then
|
if [[ -d ${folder} ]]; then
|
||||||
status_msg "Create backup of ${folder} ..."
|
status_msg "Create backup of ${folder} ..."
|
||||||
|
|
||||||
folder_name=$(echo "${folder}" | rev | cut -d"/" -f2 | rev)
|
folder_name=$(echo "${folder}" | rev | cut -d"/" -f2 | rev)
|
||||||
target_dir="${BACKUP_DIR}/configs/${current_date}/${folder_name}"
|
target_dir="${BACKUP_DIR}/configs/${current_date}/${folder_name}"
|
||||||
mkdir -p "${target_dir}"
|
mkdir -p "${target_dir}"
|
||||||
cp -r "${folder}" "${target_dir}"
|
cp -r "${folder}" "${target_dir}"
|
||||||
i=$(( i + 1 ))
|
i=$(( i + 1 ))
|
||||||
|
|
||||||
ok_msg "Backup created in:\n${target_dir}"
|
ok_msg "Backup created in:\n${target_dir}"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@@ -213,3 +213,19 @@ function backup_octoeverywhere() {
|
|||||||
print_error "Can't back up OctoEverywhere directory!\n Not found!"
|
print_error "Can't back up OctoEverywhere directory!\n Not found!"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function backup_spoolman() {
|
||||||
|
local current_date
|
||||||
|
|
||||||
|
if [[ -d ${SPOOLMAN_DIR} ]] ; then
|
||||||
|
status_msg "Creating Spoolman backup ..."
|
||||||
|
check_for_backup_dir
|
||||||
|
current_date=$(get_date)
|
||||||
|
status_msg "Timestamp: ${current_date}"
|
||||||
|
mkdir -p "${BACKUP_DIR}/Spoolman-backups/${current_date}"
|
||||||
|
cp -r "${SPOOLMAN_DIR}" "${_}" && cp -r "${SPOOLMAN_DB_DIR}/spoolman.db" "${_}"
|
||||||
|
print_confirm "Spoolman backup complete!"
|
||||||
|
else
|
||||||
|
print_error "Can't back up Spoolman directory!\n Not found!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ function install_fluidd() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
### checking dependencies
|
### checking dependencies
|
||||||
local dep=(wget nginx)
|
local dep=(wget nginx unzip)
|
||||||
dependency_check "${dep[@]}"
|
dependency_check "${dep[@]}"
|
||||||
### detect conflicting Haproxy and Apache2 installations
|
### detect conflicting Haproxy and Apache2 installations
|
||||||
detect_conflicting_packages
|
detect_conflicting_packages
|
||||||
|
|||||||
@@ -87,4 +87,9 @@ function set_globals() {
|
|||||||
OCTOAPP_ENV="${HOME}/octoapp-env"
|
OCTOAPP_ENV="${HOME}/octoapp-env"
|
||||||
OCTOAPP_DIR="${HOME}/octoapp"
|
OCTOAPP_DIR="${HOME}/octoapp"
|
||||||
OCTOAPP_REPO="https://github.com/crysxd/OctoApp-Plugin.git"
|
OCTOAPP_REPO="https://github.com/crysxd/OctoApp-Plugin.git"
|
||||||
|
|
||||||
|
#=============== Spoolman ================#
|
||||||
|
SPOOLMAN_DIR="${HOME}/Spoolman"
|
||||||
|
SPOOLMAN_DB_DIR="${HOME}/.local/share/spoolman"
|
||||||
|
SPOOLMAN_REPO="https://api.github.com/repos/Donkie/Spoolman/releases/latest"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ function install_mainsail() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
### checking dependencies
|
### checking dependencies
|
||||||
local dep=(wget nginx)
|
local dep=(wget nginx unzip)
|
||||||
dependency_check "${dep[@]}"
|
dependency_check "${dep[@]}"
|
||||||
### detect conflicting Haproxy and Apache2 installations
|
### detect conflicting Haproxy and Apache2 installations
|
||||||
detect_conflicting_packages
|
detect_conflicting_packages
|
||||||
|
|||||||
@@ -142,12 +142,12 @@ function moonraker_setup_dialog() {
|
|||||||
|
|
||||||
function install_moonraker_dependencies() {
|
function install_moonraker_dependencies() {
|
||||||
local packages log_name="Moonraker"
|
local packages log_name="Moonraker"
|
||||||
local install_script="${MOONRAKER_DIR}/scripts/install-moonraker.sh"
|
local package_json="${MOONRAKER_DIR}/scripts/system-dependencies.json"
|
||||||
|
|
||||||
### read PKGLIST from official install-script
|
### read PKGLIST from official install-script
|
||||||
status_msg "Reading dependencies..."
|
status_msg "Reading dependencies..."
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
packages="$(grep "PKGLIST=" "${install_script}" | cut -d'"' -f2 | sed 's/\${PKGLIST}//g' | tr -d '\n')"
|
packages=$(cat $package_json | tr -d ' \n{}' | cut -d "]" -f1 | cut -d":" -f2 | tr -d '"[' | sed 's/,/ /g')
|
||||||
|
|
||||||
echo "${cyan}${packages}${white}" | tr '[:space:]' '\n'
|
echo "${cyan}${packages}${white}" | tr '[:space:]' '\n'
|
||||||
read -r -a packages <<< "${packages}"
|
read -r -a packages <<< "${packages}"
|
||||||
|
|||||||
281
scripts/spoolman.sh
Normal file
281
scripts/spoolman.sh
Normal file
@@ -0,0 +1,281 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
#=======================================================================#
|
||||||
|
# Copyright (C) 2020 - 2024 Dominik Willner <th33xitus@gmail.com> #
|
||||||
|
# #
|
||||||
|
# This file is part of KIAUH - Klipper Installation And Update Helper #
|
||||||
|
# https://github.com/dw-0/kiauh #
|
||||||
|
# #
|
||||||
|
# This file may be distributed under the terms of the GNU GPLv3 license #
|
||||||
|
#=======================================================================#
|
||||||
|
|
||||||
|
# Error Handling
|
||||||
|
set -e
|
||||||
|
|
||||||
|
function install_spoolman() {
|
||||||
|
|
||||||
|
pushd "${HOME}" &> /dev/null || exit 1
|
||||||
|
|
||||||
|
dependency_check curl jq
|
||||||
|
|
||||||
|
if [[ ! -d "${SPOOLMAN_DIR}" && -z "$(ls -A "${SPOOLMAN_DIR}" 2> /dev/null)" ]]; then
|
||||||
|
status_msg "Downloading spoolman..."
|
||||||
|
setup_spoolman_folder
|
||||||
|
status_msg "Downloading complete"
|
||||||
|
start_install_script
|
||||||
|
advanced_config_prompt
|
||||||
|
else
|
||||||
|
### In case spoolman is "incomplete" rerun install script
|
||||||
|
if get_spoolman_status | grep -q "Incomplete!"; then
|
||||||
|
start_install_script
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
ok_msg "Spoolman already installed"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
enable_moonraker_integration_prompt
|
||||||
|
patch_spoolman_update_manager
|
||||||
|
|
||||||
|
do_action_service "restart" "moonraker"
|
||||||
|
}
|
||||||
|
|
||||||
|
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 remove_spoolman(){
|
||||||
|
if [[ -d "${SPOOLMAN_DIR}" ]]; then
|
||||||
|
status_msg "Removing spoolman service..."
|
||||||
|
do_action_service "stop" "Spoolman"
|
||||||
|
do_action_service "disable" "Spoolman"
|
||||||
|
sudo rm -f "${SYSTEMD}/Spoolman.service"
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl reset-failed
|
||||||
|
ok_msg "Spoolman service removed!"
|
||||||
|
|
||||||
|
status_msg "Removing spoolman directory..."
|
||||||
|
rm -rf "${SPOOLMAN_DIR}"
|
||||||
|
ok_msg "Spoolman directory removed!"
|
||||||
|
fi
|
||||||
|
|
||||||
|
print_confirm "Spoolman successfully removed!"
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_moonraker_configs() {
|
||||||
|
local moonraker_configs regex
|
||||||
|
regex="${HOME//\//\\/}\/([A-Za-z0-9_]+)\/config\/moonraker\.conf"
|
||||||
|
moonraker_configs=$(find "${HOME}" -maxdepth 3 -type f -regextype posix-extended -regex "${regex}" | sort)
|
||||||
|
|
||||||
|
for conf in ${moonraker_configs}; do
|
||||||
|
if ! grep -Eq "^\[update_manager Spoolman\]\s*$" "${conf}"; then
|
||||||
|
### add new line to conf if it doesn't end with one
|
||||||
|
[[ $(tail -c1 "${conf}" | wc -l) -eq 0 ]] && echo "" >> "${conf}"
|
||||||
|
/bin/sh -c "cat >> ${conf}" << MOONRAKER_CONF
|
||||||
|
${1}
|
||||||
|
MOONRAKER_CONF
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function enable_moonraker_integration() {
|
||||||
|
local integration_str env_port
|
||||||
|
# get spoolman port from .env
|
||||||
|
env_port=$(grep "^SPOOLMAN_PORT=" "${SPOOLMAN_DIR}/.env" | cut -d"=" -f2)
|
||||||
|
|
||||||
|
integration_str="
|
||||||
|
[spoolman]
|
||||||
|
server: http://$(hostname -I | cut -d" " -f1):${env_port}
|
||||||
|
"
|
||||||
|
|
||||||
|
status_msg "Adding Spoolman integration..."
|
||||||
|
update_moonraker_configs "${integration_str}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function patch_spoolman_update_manager() {
|
||||||
|
local updater_str
|
||||||
|
updater_str="
|
||||||
|
[update_manager Spoolman]
|
||||||
|
type: zip
|
||||||
|
channel: stable
|
||||||
|
repo: Donkie/Spoolman
|
||||||
|
path: ${SPOOLMAN_DIR}
|
||||||
|
virtualenv: .venv
|
||||||
|
requirements: requirements.txt
|
||||||
|
persistent_files:
|
||||||
|
.venv
|
||||||
|
.env
|
||||||
|
managed_services: Spoolman
|
||||||
|
"
|
||||||
|
|
||||||
|
update_moonraker_configs "${updater_str}"
|
||||||
|
|
||||||
|
# add spoolman service to moonraker.asvc
|
||||||
|
local moonraker_asvc regex
|
||||||
|
regex="${HOME//\//\\/}\/([A-Za-z0-9_]+)\/moonraker\.asvc"
|
||||||
|
moonraker_asvc=$(find "${HOME}" -maxdepth 2 -type f -regextype posix-extended -regex "${regex}" | sort)
|
||||||
|
|
||||||
|
if [[ -n ${moonraker_asvc} ]]; then
|
||||||
|
status_msg "Adding Spoolman service to moonraker.asvc..."
|
||||||
|
/bin/sh -c "echo 'Spoolman' >> ${moonraker_asvc}"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function advanced_config_prompt() {
|
||||||
|
local reply
|
||||||
|
while true; do
|
||||||
|
read -erp "${cyan}###### Continue with default configuration? (Y/n):${white} " reply
|
||||||
|
case "${reply}" in
|
||||||
|
Y|y|Yes|yes|"")
|
||||||
|
select_msg "Yes"
|
||||||
|
break;;
|
||||||
|
N|n|No|no)
|
||||||
|
select_msg "No"
|
||||||
|
advanced_config
|
||||||
|
break;;
|
||||||
|
*)
|
||||||
|
error_msg "Invalid Input!\n";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function enable_moonraker_integration_prompt() {
|
||||||
|
local reply
|
||||||
|
while true; do
|
||||||
|
read -erp "${cyan}###### Enable Moonraker integration? (Y/n):${white} " reply
|
||||||
|
case "${reply}" in
|
||||||
|
Y|y|Yes|yes|"")
|
||||||
|
select_msg "Yes"
|
||||||
|
enable_moonraker_integration
|
||||||
|
break;;
|
||||||
|
N|n|No|no)
|
||||||
|
select_msg "No"
|
||||||
|
break;;
|
||||||
|
*)
|
||||||
|
error_msg "Invalid Input!\n";;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function advanced_config() {
|
||||||
|
status_msg "###### Advanced configuration"
|
||||||
|
|
||||||
|
local reply
|
||||||
|
while true; do
|
||||||
|
read -erp "${cyan}###### Select spoolman port (7912):${white} " reply
|
||||||
|
### set default
|
||||||
|
if [[ -z "${reply}" ]]; then
|
||||||
|
reply="7912"
|
||||||
|
fi
|
||||||
|
|
||||||
|
select_msg "${reply}"
|
||||||
|
### check if port is valid
|
||||||
|
if ! [[ "${reply}" =~ ^[0-9]+$ && "${reply}" -ge 1024 && "${reply}" -le 65535 ]]; then
|
||||||
|
error_msg "Invalid port number!\n"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
### update .env
|
||||||
|
sed -i "s/^SPOOLMAN_PORT=.*$/SPOOLMAN_PORT=${reply}/" "${SPOOLMAN_DIR}/.env"
|
||||||
|
do_action_service "restart" "Spoolman"
|
||||||
|
break
|
||||||
|
done
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
function setup_spoolman_folder() {
|
||||||
|
local source_url
|
||||||
|
### get latest spoolman release url
|
||||||
|
source_url="$(curl -s "${SPOOLMAN_REPO}" | jq -r '.assets[] | select(.name == "spoolman.zip").browser_download_url')"
|
||||||
|
|
||||||
|
mkdir -p "${SPOOLMAN_DIR}"
|
||||||
|
curl -sSL "${source_url}" -o /tmp/temp.zip
|
||||||
|
unzip /tmp/temp.zip -d "${SPOOLMAN_DIR}" &> /dev/null
|
||||||
|
rm /tmp/temp.zip
|
||||||
|
|
||||||
|
chmod +x "${SPOOLMAN_DIR}"/scripts/install.sh
|
||||||
|
}
|
||||||
|
|
||||||
|
function start_install_script() {
|
||||||
|
|
||||||
|
pushd "${SPOOLMAN_DIR}" &> /dev/null || exit 1
|
||||||
|
|
||||||
|
if bash ./scripts/install.sh; then
|
||||||
|
ok_msg "Spoolman successfully installed!"
|
||||||
|
else
|
||||||
|
print_error "Spoolman installation failed!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_spoolman_status() {
|
||||||
|
local -a files
|
||||||
|
files=(
|
||||||
|
"${SPOOLMAN_DIR}"
|
||||||
|
"${SYSTEMD}/Spoolman.service"
|
||||||
|
"${SPOOLMAN_DB_DIR}"
|
||||||
|
)
|
||||||
|
|
||||||
|
local count
|
||||||
|
count=0
|
||||||
|
|
||||||
|
for file in "${files[@]}"; do
|
||||||
|
[[ -e "${file}" ]] && count=$(( count +1 ))
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "${count}" -eq "${#files[*]}" ]]; then
|
||||||
|
echo "Installed"
|
||||||
|
elif [[ "${count}" -gt 0 ]]; then
|
||||||
|
echo "Incomplete!"
|
||||||
|
else
|
||||||
|
echo "Not installed!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_local_spoolman_version() {
|
||||||
|
[[ ! -d "${SPOOLMAN_DIR}" ]] && return
|
||||||
|
|
||||||
|
local version
|
||||||
|
version=$(grep -o '"version":\s*"[^"]*' "${SPOOLMAN_DIR}"/release_info.json | cut -d'"' -f4)
|
||||||
|
echo "${version}"
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_remote_spoolman_version() {
|
||||||
|
[[ ! -d "${SPOOLMAN_DIR}" ]] && return
|
||||||
|
|
||||||
|
local version
|
||||||
|
version=$(curl -s "${SPOOLMAN_REPO}" | grep -o '"tag_name":\s*"v[^"]*"' | cut -d'"' -f4)
|
||||||
|
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}"
|
||||||
|
}
|
||||||
@@ -26,6 +26,7 @@ function backup_ui() {
|
|||||||
echo -e "| Klipper Webinterface: | Other: |"
|
echo -e "| Klipper Webinterface: | Other: |"
|
||||||
echo -e "| 5) [Mainsail] | 9) [Telegram Bot] |"
|
echo -e "| 5) [Mainsail] | 9) [Telegram Bot] |"
|
||||||
echo -e "| 6) [Fluidd] | 10) [OctoEverywhere] |"
|
echo -e "| 6) [Fluidd] | 10) [OctoEverywhere] |"
|
||||||
|
echo -e "| | 11) [Spoolman] |"
|
||||||
back_footer
|
back_footer
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -56,6 +57,8 @@ function backup_menu() {
|
|||||||
do_action "backup_telegram_bot" "backup_ui";;
|
do_action "backup_telegram_bot" "backup_ui";;
|
||||||
10)
|
10)
|
||||||
do_action "backup_octoeverywhere" "backup_ui";;
|
do_action "backup_octoeverywhere" "backup_ui";;
|
||||||
|
11)
|
||||||
|
do_action "backup_spoolman" "backup_ui";;
|
||||||
B|b)
|
B|b)
|
||||||
clear; main_menu; break;;
|
clear; main_menu; break;;
|
||||||
*)
|
*)
|
||||||
|
|||||||
@@ -19,19 +19,19 @@ function install_ui() {
|
|||||||
echo -e "| all necessary dependencies for the various |"
|
echo -e "| all necessary dependencies for the various |"
|
||||||
echo -e "| functions on a completely fresh system. |"
|
echo -e "| functions on a completely fresh system. |"
|
||||||
hr
|
hr
|
||||||
echo -e "| Firmware & API: | 3rd Party Webinterface: |"
|
echo -e "| Firmware & API: | Other: |"
|
||||||
echo -e "| 1) [Klipper] | 6) [OctoPrint] |"
|
echo -e "| 1) [Klipper] | 7) [PrettyGCode] |"
|
||||||
echo -e "| 2) [Moonraker] | |"
|
echo -e "| 2) [Moonraker] | 8) [Telegram Bot] |"
|
||||||
echo -e "| | Other: |"
|
echo -e "| | 9) $(obico_install_title) |"
|
||||||
echo -e "| Klipper Webinterface: | 7) [PrettyGCode] |"
|
echo -e "| Klipper Webinterface: | 10) [OctoEverywhere] |"
|
||||||
echo -e "| 3) [Mainsail] | 8) [Telegram Bot] |"
|
echo -e "| 3) [Mainsail] | 11) [Mobileraker] |"
|
||||||
echo -e "| 4) [Fluidd] | 9) $(obico_install_title) |"
|
echo -e "| 4) [Fluidd] | 12) [OctoApp for Klipper] |"
|
||||||
echo -e "| | 10) [OctoEverywhere] |"
|
echo -e "| | 13) [Spoolman] |"
|
||||||
echo -e "| | 11) [Mobileraker] |"
|
echo -e "| Touchscreen GUI: | |"
|
||||||
echo -e "| Touchscreen GUI: | 12) [OctoApp for Klipper] |"
|
echo -e "| 5) [KlipperScreen] | Webcam Streamer: |"
|
||||||
echo -e "| 5) [KlipperScreen] | |"
|
echo -e "| | 14) [Crowsnest] |"
|
||||||
echo -e "| | Webcam Streamer: |"
|
echo -e "| 3rd Party Webinterface: | |"
|
||||||
echo -e "| | 13) [Crowsnest] |"
|
echo -e "| 6) [OctoPrint] | |"
|
||||||
back_footer
|
back_footer
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -75,6 +75,8 @@ function install_menu() {
|
|||||||
12)
|
12)
|
||||||
do_action "octoapp_setup_dialog" "install_ui";;
|
do_action "octoapp_setup_dialog" "install_ui";;
|
||||||
13)
|
13)
|
||||||
|
do_action "install_spoolman" "install_ui";;
|
||||||
|
14)
|
||||||
do_action "install_crowsnest" "install_ui";;
|
do_action "install_crowsnest" "install_ui";;
|
||||||
B|b)
|
B|b)
|
||||||
clear; main_menu; break;;
|
clear; main_menu; break;;
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ function main_ui() {
|
|||||||
echo -e "| | OctoEverywhere: $(print_status "octoeverywhere")|"
|
echo -e "| | OctoEverywhere: $(print_status "octoeverywhere")|"
|
||||||
echo -e "| | Mobileraker: $(print_status "mobileraker")|"
|
echo -e "| | Mobileraker: $(print_status "mobileraker")|"
|
||||||
echo -e "| | OctoApp: $(print_status "octoapp")|"
|
echo -e "| | OctoApp: $(print_status "octoapp")|"
|
||||||
|
echo -e "| | Spoolman: $(print_status "spoolman")|"
|
||||||
echo -e "| | |"
|
echo -e "| | |"
|
||||||
echo -e "| | Octoprint: $(print_status "octoprint")|"
|
echo -e "| | Octoprint: $(print_status "octoprint")|"
|
||||||
hr
|
hr
|
||||||
@@ -92,9 +93,6 @@ function main_menu() {
|
|||||||
clear && print_header
|
clear && print_header
|
||||||
main_ui
|
main_ui
|
||||||
|
|
||||||
### initialize kiauh.ini
|
|
||||||
init_ini
|
|
||||||
|
|
||||||
local action
|
local action
|
||||||
while true; do
|
while true; do
|
||||||
read -p "${cyan}####### Perform action:${white} " action
|
read -p "${cyan}####### Perform action:${white} " action
|
||||||
|
|||||||
@@ -17,21 +17,21 @@ function remove_ui() {
|
|||||||
hr
|
hr
|
||||||
echo -e "| ${yellow}INFO: Configurations and/or any backups will be kept!${white} |"
|
echo -e "| ${yellow}INFO: Configurations and/or any backups will be kept!${white} |"
|
||||||
hr
|
hr
|
||||||
echo -e "| Firmware & API: | 3rd Party Webinterface: |"
|
echo -e "| Firmware & API: | Webcam Streamer: |"
|
||||||
echo -e "| 1) [Klipper] | 8) [OctoPrint] |"
|
echo -e "| 1) [Klipper] | 9) [Crowsnest] |"
|
||||||
echo -e "| 2) [Moonraker] | |"
|
echo -e "| 2) [Moonraker] | 10) [MJPG-Streamer] |"
|
||||||
echo -e "| | Webcam Streamer: |"
|
echo -e "| | |"
|
||||||
echo -e "| Klipper Webinterface: | 9) [Crowsnest] |"
|
echo -e "| Klipper Webinterface: | Other: |"
|
||||||
echo -e "| 3) [Mainsail] | 10) [MJPG-Streamer] |"
|
echo -e "| 3) [Mainsail] | 11) [PrettyGCode] |"
|
||||||
echo -e "| 4) [Mainsail-Config] | |"
|
echo -e "| 4) [Mainsail-Config] | 12) [Telegram Bot] |"
|
||||||
echo -e "| 5) [Fluidd] | Other: |"
|
echo -e "| 5) [Fluidd] | 13) [Obico for Klipper] |"
|
||||||
echo -e "| 6) [Fluidd-Config] | 11) [PrettyGCode] |"
|
echo -e "| 6) [Fluidd-Config] | 14) [OctoEverywhere] |"
|
||||||
echo -e "| | 12) [Telegram Bot] |"
|
|
||||||
echo -e "| Touchscreen GUI: | 13) [Obico for Klipper] |"
|
|
||||||
echo -e "| 7) [KlipperScreen] | 14) [OctoEverywhere] |"
|
|
||||||
echo -e "| | 15) [Mobileraker] |"
|
echo -e "| | 15) [Mobileraker] |"
|
||||||
echo -e "| | 16) [NGINX] |"
|
echo -e "| Touchscreen GUI: | 16) [NGINX] |"
|
||||||
echo -e "| | 17) [OctoApp] |"
|
echo -e "| 7) [KlipperScreen] | 17) [OctoApp] |"
|
||||||
|
echo -e "| | 18) [Spoolman] |"
|
||||||
|
echo -e "| 3rd Party Webinterface: | |"
|
||||||
|
echo -e "| 8) [OctoPrint] | |"
|
||||||
back_footer
|
back_footer
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -76,6 +76,8 @@ function remove_menu() {
|
|||||||
do_action "remove_nginx" "remove_ui";;
|
do_action "remove_nginx" "remove_ui";;
|
||||||
17)
|
17)
|
||||||
do_action "remove_octoapp" "remove_ui";;
|
do_action "remove_octoapp" "remove_ui";;
|
||||||
|
18)
|
||||||
|
do_action "remove_spoolman" "remove_ui";;
|
||||||
B|b)
|
B|b)
|
||||||
clear; main_menu; break;;
|
clear; main_menu; break;;
|
||||||
*)
|
*)
|
||||||
|
|||||||
@@ -36,15 +36,16 @@ function update_ui() {
|
|||||||
echo -e "| 10) [Mobileraker] |$(compare_mobileraker_versions)|"
|
echo -e "| 10) [Mobileraker] |$(compare_mobileraker_versions)|"
|
||||||
echo -e "| 11) [Crowsnest] |$(compare_crowsnest_versions)|"
|
echo -e "| 11) [Crowsnest] |$(compare_crowsnest_versions)|"
|
||||||
echo -e "| 12) [OctoApp] |$(compare_octoapp_versions)|"
|
echo -e "| 12) [OctoApp] |$(compare_octoapp_versions)|"
|
||||||
|
echo -e "| 13) [Spoolman] |$(compare_spoolman_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
|
||||||
@@ -76,6 +77,8 @@ function update_menu() {
|
|||||||
12)
|
12)
|
||||||
do_action "update_octoapp" "update_ui";;
|
do_action "update_octoapp" "update_ui";;
|
||||||
13)
|
13)
|
||||||
|
do_action "update_spoolman" "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 +104,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 +124,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 +146,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
|
||||||
|
|||||||
@@ -28,6 +28,21 @@ function check_euid() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function check_if_ratos() {
|
||||||
|
if [[ -n $(which ratos) ]]; then
|
||||||
|
echo -e "${red}"
|
||||||
|
top_border
|
||||||
|
echo -e "| !!! RatOS 2.1 or greater detected !!! |"
|
||||||
|
echo -e "| |"
|
||||||
|
echo -e "| KIAUH does currently not support RatOS. |"
|
||||||
|
echo -e "| If you have any questions, please ask for help on the |"
|
||||||
|
echo -e "| RatRig Community Discord: https://discord.gg/ratrig |"
|
||||||
|
bottom_border
|
||||||
|
echo -e "${white}"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
#================================================#
|
#================================================#
|
||||||
#============= MESSAGE FORMATTING ===============#
|
#============= MESSAGE FORMATTING ===============#
|
||||||
#================================================#
|
#================================================#
|
||||||
@@ -178,6 +193,10 @@ function init_ini() {
|
|||||||
echo -e "\nmulti_instance_names=\c" >> "${INI_FILE}"
|
echo -e "\nmulti_instance_names=\c" >> "${INI_FILE}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if ! grep -Eq "^version_to_launch=" "${INI_FILE}"; then
|
||||||
|
echo -e "\nversion_to_launch=\n\c" >> "${INI_FILE}"
|
||||||
|
fi
|
||||||
|
|
||||||
### strip all empty lines out of the file
|
### strip all empty lines out of the file
|
||||||
sed -i "/^[[:blank:]]*$/ d" "${INI_FILE}"
|
sed -i "/^[[:blank:]]*$/ d" "${INI_FILE}"
|
||||||
}
|
}
|
||||||
@@ -362,9 +381,9 @@ function create_required_folders() {
|
|||||||
|
|
||||||
function update_system_package_lists() {
|
function update_system_package_lists() {
|
||||||
local cache_mtime update_age update_interval silent
|
local cache_mtime update_age update_interval silent
|
||||||
|
|
||||||
if [[ $1 == '--silent' ]]; then silent="true"; fi
|
if [[ $1 == '--silent' ]]; then silent="true"; fi
|
||||||
|
|
||||||
if [[ -e /var/lib/apt/periodic/update-success-stamp ]]; then
|
if [[ -e /var/lib/apt/periodic/update-success-stamp ]]; then
|
||||||
cache_mtime="$(stat -c %Y /var/lib/apt/periodic/update-success-stamp)"
|
cache_mtime="$(stat -c %Y /var/lib/apt/periodic/update-success-stamp)"
|
||||||
elif [[ -e /var/lib/apt/lists ]]; then
|
elif [[ -e /var/lib/apt/lists ]]; then
|
||||||
@@ -396,10 +415,10 @@ function update_system_package_lists() {
|
|||||||
function check_system_updates() {
|
function check_system_updates() {
|
||||||
local updates_avail status
|
local updates_avail status
|
||||||
if ! update_system_package_lists --silent; then
|
if ! update_system_package_lists --silent; then
|
||||||
status="${red}Update check failed! ${white}"
|
status="${red}Update check failed! ${white}"
|
||||||
else
|
else
|
||||||
updates_avail="$(apt list --upgradeable 2>/dev/null | sed "1d")"
|
updates_avail="$(apt list --upgradeable 2>/dev/null | sed "1d")"
|
||||||
|
|
||||||
if [[ -n ${updates_avail} ]]; then
|
if [[ -n ${updates_avail} ]]; then
|
||||||
status="${yellow}System upgrade available!${white}"
|
status="${yellow}System upgrade available!${white}"
|
||||||
# add system to application_updates_available in kiauh.ini
|
# add system to application_updates_available in kiauh.ini
|
||||||
@@ -408,7 +427,7 @@ function check_system_updates() {
|
|||||||
status="${green}System up to date! ${white}"
|
status="${green}System up to date! ${white}"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "${status}"
|
echo "${status}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user