diff --git a/menu b/menu index 101d5b8..9f46df9 100644 --- a/menu +++ b/menu @@ -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 + exec "$0" 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"