Update menu

This commit is contained in:
MacRimi
2025-11-16 00:23:14 +01:00
parent 78d883a1b4
commit 30afb85260

59
menu
View File

@@ -49,64 +49,42 @@ fi
# =========================================================
check_updates() {
local INSTALL_SCRIPT="$BASE_DIR/install_proxmenux.sh"
local VERSION_URL="$REPO_URL/version.txt"
local INSTALL_URL="$REPO_URL/install_proxmenux.sh"
local VERSION_URL INSTALL_URL INSTALL_SCRIPT
local REMOTE_VERSION LOCAL_VERSION
local CURL_OPTS=(
-fsSL
--connect-timeout 3
--max-time 5
)
local REMOTE_VERSION
REMOTE_VERSION="$(curl "${CURL_OPTS[@]}" "$VERSION_URL" 2>/dev/null | head -n 1 || true)"
VERSION_URL="$REPO_URL/version.txt"
INSTALL_URL="$REPO_URL/install_proxmenux.sh"
INSTALL_SCRIPT="$BASE_DIR/install_proxmenux.sh"
if [[ -z "$REMOTE_VERSION" ]]; then
return 0
fi
[[ ! -f "$LOCAL_VERSION_FILE" ]] && return 0
REMOTE_VERSION="$(curl -fsSL "$VERSION_URL" 2>/dev/null | head -n 1)"
[[ -z "$REMOTE_VERSION" ]] && return 0
LOCAL_VERSION="$(head -n 1 "$LOCAL_VERSION_FILE" 2>/dev/null)"
[[ -z "$LOCAL_VERSION" ]] && return 0
local LOCAL_VERSION=""
if [[ -f "$LOCAL_VERSION_FILE" ]]; then
LOCAL_VERSION="$(head -n 1 "$LOCAL_VERSION_FILE" 2>/dev/null || true)"
fi
[[ "$LOCAL_VERSION" = "$REMOTE_VERSION" ]] && return 0
local TITLE MESSAGE
TITLE="$(translate 'Update Available')"
MESSAGE="$(translate 'New version available') ($REMOTE_VERSION)\n\n$(translate 'Do you want to update now?')"
if whiptail --title "$TITLE" \
--yesno "$MESSAGE" \
if whiptail --title "$(translate 'Update Available')" \
--yesno "$(translate 'New version available') ($REMOTE_VERSION)\n\n$(translate 'Do you want to update now?')" \
10 60 --defaultno; then
msg_warn "$(translate 'Starting ProxMenux update...')"
local START_MSG
START_MSG="$(translate 'Starting ProxMenux update...')"
msg_warn "$START_MSG"
if curl "${CURL_OPTS[@]}" "$INSTALL_URL" -o "$INSTALL_SCRIPT"; then
if curl -fsSL "$INSTALL_URL" -o "$INSTALL_SCRIPT"; then
chmod +x "$INSTALL_SCRIPT"
if ! bash -n "$INSTALL_SCRIPT" >/tmp/proxmenux-install-syntax.log 2>&1; then
msg_error "$(translate 'The installer has a syntax error. Aborting update. See:') /tmp/proxmenux-install-syntax.log"
return 0
fi
bash "$INSTALL_SCRIPT" --update
if bash "$INSTALL_SCRIPT" --update >/tmp/proxmenux-install.log 2>&1; then
local DONE_MSG
DONE_MSG="$(translate 'ProxMenux has been updated successfully. Restarting menu...')"
msg_ok "$DONE_MSG"
exec "$0"
else
msg_error "$(translate 'Installer finished with errors. See log:') /tmp/proxmenux-install.log"
return 0
fi
else
msg_warn "$(translate 'Unable to download the installer. Please try again later.')"
fi
@@ -118,6 +96,7 @@ check_updates() {
main_menu() {
local MAIN_MENU="$LOCAL_SCRIPTS/menus/main_menu.sh"