[IMPROVED] Actualizar fjadmin_install.sh para usar console.lib y mensajes i18n

- Añadir mensajes fjmsg_* a developers.es para soporte de localización
- Integrar funciones de diálogo de console.lib para mejorar la interfaz de usuario
- Crear estructura de función principal para mejor organización del script
- Mejorar manejo de errores con mensajes informativos

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Mauro Rosero P. 2025-03-19 17:16:13 -05:00
parent d5b3b1bc31
commit e67b6fc5de
Signed by: mrosero
GPG key ID: 83BD2A5F674B7E26
2 changed files with 155 additions and 0 deletions

138
bin/fjadmin_install.sh Executable file
View file

@ -0,0 +1,138 @@
#!/bin/bash
#
# Script: fjadmin_install.sh
# Description: Script para instalar Forgejo Manager CLI.
# Created: 2025/03/19 11:57:08
# Modified: 2025/03/19 11:57:08
# [Author] Cortana Rosero One <cortana@rosero.one>
# [Generated] Created by Claude Code (claude-3-7-sonnet-20250219)
#
# Derechos de Autor (C) [2025] [Mauro Rosero P. <mauro@rosero.one>]
#
# 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
# lo publica la Free Software Foundation, ya sea la versión 3 de la licencia,
# o (a su elección) cualquier versión posterior.
#
# Este programa se distribuye con la esperanza de que sea útil,
# pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de
# COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la
# Licencia Pública Affero General de GNU para obtener más detalles.
#
# Debería haber recibido una copia de la Licencia Pública Affero General
# junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>.
# Configuración inicial
# Usar DEVELOPER_DIR de base.lib
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BIN_BASE="bin"
BIN_LIBS="lib"
BIN_MESG="msg"
BIN_CFGS="config"
# Leer DEVSPATH desde el archivo de configuración o usar "devs" por defecto
if [ -f "$SCRIPT_DIR/config/devspath.dat" ]; then
DEVSPATH=$(cat "$SCRIPT_DIR/$BIN_CFGS/devspath.dat")
else
DEVSPATH="devs"
fi
BIN_HOME="$HOME/$DEVSPATH"
VERSION=$(cat "$BIN_HOME/$BIN_BASE/$BIN_CFGS/version")
# CHECK SHELL LANGUAGE
BIN_LANG=${LANG:0:2}
# Importar bibliotecas necesarias
source "${BIN_HOME}/${BIN_BASE}/${BIN_LIBS}/base.lib"
source "${BIN_HOME}/${BIN_BASE}/${BIN_LIBS}/developers.lib"
source "${BIN_HOME}/${BIN_BASE}/${BIN_LIBS}/console.lib"
# Cargar mensajes en el idioma del sistema o español por defecto
load_messages "${BIN_HOME}/${BIN_BASE}" "${BIN_MESG}" "${BIN_LANG}" "head"
load_messages "${BIN_HOME}/${BIN_BASE}" "${BIN_MESG}" "${BIN_LANG}" "developers"
title="${head_000} ${head_002}"
apps_title="${fjmsg_000}"
# Verificar si dialog está instalado
check_dialog_installed() {
if ! command -v dialog &> /dev/null; then
echo "${head_001}"
exit 1
fi
}
# Función para verificar si cargo está instalado
check_cargo() {
if ! command -v cargo &> /dev/null; then
dialog_error_box "${head_info}" "${fjmsg_002}"
# Mostrar progreso de instalación
echo "curl https://sh.rustup.rs -sSf | sh"
curl https://sh.rustup.rs -sSf | sh
# Cargar el entorno de Rust
source "$HOME/.cargo/env"
dialog_error_box "${head_info}" "${fjmsg_003}"
else
dialog_error_box "${head_info}" "${fjmsg_004}"
fi
}
# Función para verificar si forgejo-cli está instalado
check_forgejo_cli() {
if ! command -v codeberg &> /dev/null; then
dialog_error_box "${head_info}" "${fjmsg_005}"
# Verificar que cargo esté disponible
if ! command -v cargo &> /dev/null; then
dialog_error_box "${head_error}" "${fjmsg_006}\n${fjmsg_007}"
exit 1
fi
# Instalar forgejo-cli (codeberg-cli)
echo "cargo install codeberg-cli"
cargo install codeberg-cli
if [ $? -eq 0 ]; then
dialog_error_box "${head_info}" "${fjmsg_008}"
else
dialog_error_box "${head_error}" "${fjmsg_009}"
exit 1
fi
else
dialog_error_box "${head_info}" "${fjmsg_008}"
fi
}
# Función principal
main() {
# Verificar si dialog está instalado
check_dialog_installed
# Preguntar al usuario si desea instalar Forgejo CLI
dialog_yesno "${fjmsg_012}\n\n${fjmsg_013}"
if [ $? -ne 0 ]; then
dialog_error_box "${head_canceled}" "${fjmsg_014}"
clear
exit 0
fi
# Verificar si cargo está instalado
check_cargo
dialog_error_box "${head_info}" "${fjmsg_010}"
# Instalar forgejo-cli si no está instalado
check_forgejo_cli
dialog_error_box "${head_info}" "${fjmsg_011}"
clear
exit 0
}
# Ejecutar función principal
main

View file

@ -77,3 +77,20 @@ qrmsg_012="Error"
qrmsg_013="Dialog no está instalado"
qrmsg_014="Zbar no está instalado"
# Mensajes para fjadmin_install.sh
fjmsg_000="INSTALADOR DE FORGEJO CLI"
fjmsg_001="Instalando Forgejo CLI"
fjmsg_002="Cargo no está instalado. Instalando Rust y Cargo..."
fjmsg_003="Rust y Cargo han sido instalados correctamente."
fjmsg_004="Cargo ya está instalado."
fjmsg_005="Forgejo CLI no está instalado. Instalando..."
fjmsg_006="ERROR: No se pudo encontrar cargo en el PATH después de la instalación."
fjmsg_007="Por favor reinicie su terminal e intente nuevamente."
fjmsg_008="Forgejo CLI instalado correctamente."
fjmsg_009="ERROR: No se pudo instalar Forgejo CLI."
fjmsg_010="Preparando instalación de Forgejo CLI..."
fjmsg_011="Instalación completada."
fjmsg_012="¿Desea instalar Forgejo CLI?"
fjmsg_013="Esta herramienta le permite administrar instancias de Forgejo desde línea de comandos."
fjmsg_014="Instalación cancelada por el usuario."