[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:
parent
d5b3b1bc31
commit
e67b6fc5de
2 changed files with 155 additions and 0 deletions
138
bin/fjadmin_install.sh
Executable file
138
bin/fjadmin_install.sh
Executable 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
|
|
@ -77,3 +77,20 @@ qrmsg_012="Error"
|
||||||
qrmsg_013="Dialog no está instalado"
|
qrmsg_013="Dialog no está instalado"
|
||||||
qrmsg_014="Zbar 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."
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue