diff --git a/bin/fjadmin_install.sh b/bin/fjadmin_install.sh new file mode 100755 index 0000000..5eb324c --- /dev/null +++ b/bin/fjadmin_install.sh @@ -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 +# [Generated] Created by Claude Code (claude-3-7-sonnet-20250219) +# +# 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 +# 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 . + +# 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 diff --git a/bin/msg/developers.es b/bin/msg/developers.es index b6c3894..5ea298c 100644 --- a/bin/msg/developers.es +++ b/bin/msg/developers.es @@ -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." +