diff --git a/menu.sh b/menu.sh index 219235c..846688a 100644 --- a/menu.sh +++ b/menu.sh @@ -100,38 +100,47 @@ select_language() { check_updates() { msg_info "$UPDATE_CHECKING" - # Forzar la descarga de la versión remota sin usar caché - REMOTE_VERSION=$(wget -qO- --no-cache "$REPO_URL/version.txt?$(date +%s)" | tr -d '\r' | tr -d '\n') + # Eliminar el archivo remote_version.txt si existe + rm -f "$REMOTE_VERSION_FILE" - if [ -z "$REMOTE_VERSION" ]; then - msg_error "$UPDATE_CHECK_ERROR" - return 1 - fi + # Forzar la descarga de la versión remota sin usar caché + if wget -qO "$REMOTE_VERSION_FILE" --no-cache "$REPO_URL/version.txt?$(date +%s)"; then + REMOTE_VERSION=$(cat "$REMOTE_VERSION_FILE" | tr -d '\r' | tr -d '\n') + + if [ -z "$REMOTE_VERSION" ]; then + msg_error "$UPDATE_CHECK_ERROR" + return 1 + fi - if [ ! -f "$LOCAL_VERSION_FILE" ]; then - echo "$REMOTE_VERSION" > "$LOCAL_VERSION_FILE" - msg_info "$FIRST_INSTALL $REMOTE_VERSION" - else - LOCAL_VERSION=$(cat "$LOCAL_VERSION_FILE" | tr -d '\r' | tr -d '\n') + if [ ! -f "$LOCAL_VERSION_FILE" ]; then + echo "$REMOTE_VERSION" > "$LOCAL_VERSION_FILE" + msg_info "$(printf "$FIRST_INSTALL" "$REMOTE_VERSION")" + else + LOCAL_VERSION=$(cat "$LOCAL_VERSION_FILE" | tr -d '\r' | tr -d '\n') - if [ "$LOCAL_VERSION" != "$REMOTE_VERSION" ]; then - if version_gt "$REMOTE_VERSION" "$LOCAL_VERSION"; then - msg_info "$(printf "$NEW_VERSION_AVAILABLE" "$REMOTE_VERSION" "$LOCAL_VERSION")" - if whiptail --title "$UPDATE_TITLE" --yesno "$UPDATE_PROMPT" 10 60; then - perform_update + if [ "$LOCAL_VERSION" != "$REMOTE_VERSION" ]; then + if version_gt "$REMOTE_VERSION" "$LOCAL_VERSION"; then + msg_info "$(printf "$NEW_VERSION_AVAILABLE" "$REMOTE_VERSION" "$LOCAL_VERSION")" + if whiptail --title "$UPDATE_TITLE" --yesno "$UPDATE_PROMPT" 10 60; then + perform_update + else + msg_info "$UPDATE_POSTPONED" + fi else - msg_info "$UPDATE_POSTPONED" + msg_info "$UPDATE_CURRENT" fi else - msg_info "$UPDATE_CURRENT" + msg_info "$(printf "$CURRENT_VERSION_INFO" "$LOCAL_VERSION")" fi - else - msg_info "$(printf "$CURRENT_VERSION_INFO" "$LOCAL_VERSION")" fi + else + msg_error "$UPDATE_CHECK_ERROR" fi + + # Eliminar el archivo remote_version.txt después de la comprobación + rm -f "$REMOTE_VERSION_FILE" } - # Función para realizar la actualización perform_update() { # Limpiar la caché antes de la actualización