From 074643e21d010b1b1cb40a0e09fe7cd23bcda74b Mon Sep 17 00:00:00 2001 From: "Mauro Rosero P." Date: Sat, 15 Mar 2025 19:04:44 -0500 Subject: [PATCH] [IMPROVED] Actualizar script update.sh para gestionar oathtool y zbar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Añadir función update_additional_tools() para actualizar herramientas adicionales - Implementar parámetros --oathtool y --zbar para actualización selectiva - Detectar automáticamente si las herramientas están instaladas antes de actualizarlas - Actualizar README con documentación de las nuevas opciones - Mantener compatibilidad con el flujo de actualización existente 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- README.md | 2 ++ bin/update.sh | 80 +++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 80 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5f9b9fe..e7d5413 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,8 @@ bin/update.sh | `bin/bootstrap.sh --oathtool` | Instala únicamente oathtool (herramienta para TOTP/HOTP) | | `bin/bootstrap.sh --zbar` | Instala únicamente zbar (herramienta para lectura de códigos QR) | | `bin/update.sh` | Actualiza el entorno de desarrollo con las últimas funcionalidades | +| `bin/update.sh --oathtool` | Actualiza únicamente oathtool (herramienta para TOTP/HOTP) | +| `bin/update.sh --zbar` | Actualiza únicamente zbar (herramienta para lectura de códigos QR) | | `bin/npm_install.sh` | Instala NodeJS y npm de forma interactiva | | `bin/project_new.sh` | Crea un nuevo proyecto con estructura estandarizada según el tipo seleccionado | diff --git a/bin/update.sh b/bin/update.sh index a522efd..6c25613 100755 --- a/bin/update.sh +++ b/bin/update.sh @@ -1,8 +1,8 @@ #!/bin/bash # # update.sh -# Modified: 2024/12/01 15:27:00 -# Derechos de Autor (C) [2024] [Mauro Rosero P. ] +# Modified: 2025/03/15 18:25:00 +# Derechos de Autor (C) [2025] [Mauro Rosero P. ] # # Este programa es software libre: usted puede redistribuirlo y/o modificarlo # bajo los términos de la Licencia Pública Affero General de GNU tal como @@ -182,5 +182,81 @@ else echo -e "Para instalar estas dependencias, ejecute bin/bootstrap.sh primero." fi +# Actualizar herramientas adicionales si están instaladas +update_additional_tools() { + local BIN_PATH=$1 + local LIBRARY=$2 + local MESSAGES=$3 + local UPDATE_LANG=$4 + local SPECIFIC_TOOL=$5 # Herramienta específica a actualizar (opcional) + + # Cargar biblioteca bootstrap para acceder a las funciones de instalación + source "$BIN_PATH/$LIBRARY/bootstrap.lib" + + if [[ -n "$SPECIFIC_TOOL" ]]; then + # Actualizar solo la herramienta especificada + case "$SPECIFIC_TOOL" in + "oathtool") + echo -e "\n${head_info}: Actualizando oathtool..." + command_installed oathtool + if [ $? -eq 0 ]; then + oathtool_install + echo -e "${head_info}: oathtool actualizado correctamente." + else + echo -e "${head_info}: oathtool no está instalado. Para instalarlo, ejecute: bin/bootstrap.sh --oathtool" + fi + ;; + "zbar") + echo -e "\n${head_info}: Actualizando zbar..." + command_installed zbar-tools + if [ $? -eq 0 ]; then + zbar_install + echo -e "${head_info}: zbar actualizado correctamente." + else + echo -e "${head_info}: zbar no está instalado. Para instalarlo, ejecute: bin/bootstrap.sh --zbar" + fi + ;; + *) + echo -e "\n${head_error}: Herramienta '$SPECIFIC_TOOL' no reconocida." + ;; + esac + return + fi + + # Actualizar oathtool si está instalado + command_installed oathtool + if [ $? -eq 0 ]; then + echo -e "\n${head_info}: Actualizando oathtool..." + oathtool_install + echo -e "${head_info}: oathtool actualizado correctamente." + fi + + # Actualizar zbar si está instalado + command_installed zbar-tools + if [ $? -eq 0 ]; then + echo -e "\n${head_info}: Actualizando zbar..." + zbar_install + echo -e "${head_info}: zbar actualizado correctamente." + fi +} + +# Procesar argumentos +TOOL_TO_UPDATE="" + +if [ $# -ge 1 ]; then + case "$1" in + "--oathtool") + TOOL_TO_UPDATE="oathtool" + ;; + "--zbar") + TOOL_TO_UPDATE="zbar" + ;; + esac +fi + +# Actualizar herramientas adicionales con sudo si están instaladas +echo -e "\n${head_info}: Verificando herramientas adicionales..." +sudo bash -c "$(declare -f command_installed; declare -f update_additional_tools); update_additional_tools $BIN_HOME $BIN_LIBS $BIN_MESG $BIN_LANG '$TOOL_TO_UPDATE'" + echo -e "\n${head_info}: Proceso de actualización completado."