- Añadir mensajes i18n con prefijo glmsg_ para GitLab CLI installer
- Implementar variables de mensajes localizados en todo el script
- Mantener consistencia con el estilo de otros scripts de instalación
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Añadir mensajes i18n con prefijo ghmsg_ para GitHub CLI installer
- Implementar variables de mensajes localizados en todo el script
- Mantener consistencia con el estilo de otros scripts
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Agregar mensajes i18n para integración de Forgejo
- Actualizar hora de modificación del script
- Implementar uso de variables de mensajes localizados
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 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>
- Reemplazar llamadas directas a dialog por funciones de console.lib
- Simplificar el flujo de diálogo para solicitar tokens
- Mejorar manejo de errores utilizando métodos estándar
- Mostrar mensajes i18n adecuados de head.es y developers.es
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Reemplazar llamadas a funciones inexistentes dialog_msg_box y dialog_info_box
- Usar la función dialog_error_box para todos los mensajes
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Usar funciones de diálogo para mensajes de interfaz
- Incorporar mensajes localizados desde head.es
- Mostrar progreso durante la estandarización de scripts
- Crear copias de respaldo de los archivos originales
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Crear plantilla bash.head para encabezados de scripts
- Crear plantilla bash.variables para variables comunes en todos los scripts
- Implementar script standardize_scripts.sh para aplicar estas plantillas
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Utilizar dialog_input_filepath para selección de archivos
- Reordenar verificación de dialog para consistencia
- Codificar secreto en base64 para mayor seguridad
- Ajustar flujo lógico de la función principal
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Modificar todos los scripts para leer la versión desde bin/config/version
- Añadir variable BIN_CFGS donde faltaba
- Eliminar definiciones locales de VERSION en los scripts
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Reemplazar todos los mensajes mostrados con echo por llamadas a dialog
- Mostrar errores de dependencias con dialog_error_box cuando sea posible
- Usar dialog para confirmaciones de operación cancelada
- Mantener mensaje echo solo para el caso donde dialog no está instalado
- Mejorar el mensaje de operación cancelada para mayor claridad
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Incorporar mensajes en developers.es para qr_secret.sh
- Mover todos los textos UI a variables localizables
- Reemplazar strings hardcodeados con referencias a variables de mensajes
- Seguir formato estándar de mensajes usado en otros scripts del proyecto
- Mejorar procesamiento de errores con mensajes consistentes
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Reemplazar función dialog_input_filepath que no funcionaba correctamente
- Implementar selección de archivos directamente con dialog y --fselect
- Mejorar tamaño y visibilidad del selector de archivos (15x60)
- Añadir validación apropiada para asegurar que se seleccionó un archivo válido
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Modificar sufijo de archivos de .sops.yaml a .totp.yaml para mejor contextualización
- Actualizar mensajes de éxito para reflejar el nuevo formato de nombre de archivo
- Mantener el mismo mecanismo de encriptación con SOPS
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Crear script para extraer secretos de imágenes QR usando zbar
- Implementar selección de archivos mediante dialog_input_filepath
- Validar nombres de archivos según criterios específicos (sin espacios, caracteres limitados)
- Guardar secretos encriptados con SOPS en DEVELOPER_DIR
- Detectar y procesar URLs de autenticación TOTP (otpauth://)
- Actualizar README con documentación del nuevo script
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Quitar parámetros específicos --oathtool y --zbar del script update.sh
- Simplificar la función update_additional_tools eliminando parámetros opcionales
- Actualizar automáticamente oathtool y zbar si están instalados
- Eliminar procesamiento de argumentos redundante
- Actualizar README para reflejar la nueva funcionalidad simplificada
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Eliminar parámetros específicos para instalaciones individuales
- Añadir instalación automática de oathtool y zbar en el flujo principal
- Verificar si las herramientas ya están instaladas antes de proceder
- Simplificar la función install() y eliminar manejo de parámetros opcionales
- Actualizar README para reflejar que bootstrap.sh ahora instala estas herramientas por defecto
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 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 <noreply@anthropic.com>
- Añadir documentación para bootstrap.sh --oathtool y --zbar
- Incluir descripción de cada herramienta y su propósito
- Mantener el formato de tabla consistente con el resto del README
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implementar funciones oathtool_install() y zbar_install() en bootstrap.lib
- Modificar bootstrap.sh para aceptar parámetros --oathtool y --zbar
- Permitir instalar paquetes específicos sin instalar todo el conjunto
- Adaptar la función install() para manejar instalaciones específicas
- Mantener compatibilidad con el modo de instalación completa
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Añadir fj_login.sh a la tabla de herramientas para control de versiones
- Crear sección detallada sobre autenticación con Forgejo usando token encriptado
- Incluir ejemplos de uso para login y logout
- Describir las características principales y ventajas del script
- Mantener organización coherente con el resto de la documentación
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Quitar funciones create_fj_alias() y remove_fj_alias()
- Eliminar llamadas a esas funciones desde login y logout
- Reemplazar con comentarios explicativos
- Simplificar el script para enfocarse solo en la gestión de tokens y autenticación
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Volver a usar alias en memoria (más simple y directo)
- Eliminar creación de enlaces simbólicos complejos
- Reducir los mensajes y aclaraciones innecesarias
- Mantener la funcionalidad esencial con implementación mínima
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Configurar BERG_BASE_URL antes de intentar el logout
- Verificar si existe una sesión activa antes de intentar cerrarla
- Suprimir errores de logout y continuar incluso si hay fallo
- Manejar graciosamente el caso de sesión no existente
- Eliminar mensajes de error y código de salida para mayor robustez
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Cambiar de script wrapper a enlace simbólico a berg
- Detectar la ubicación real de berg usando 'which' para crear el enlace
- Intentar crear enlace global en el mismo directorio que berg si hay permisos
- Crear enlace alternativo en ~/.local/bin y actualizar PATH cuando sea necesario
- Implementar eliminación adecuada del enlace en ambas ubicaciones
- Solucionar el error "fj: no se encontró la orden" por problemas de PATH
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Cambiar de alias en memoria a script wrapper en ~/.local/bin
- Crear un ejecutable 'fj' que invoca a 'berg' con los mismos argumentos
- Verificar si ~/.local/bin está en PATH y mostrar instrucciones si no lo está
- Implementar limpieza del script al usar --logout
- Solucionar el problema "fj: no se encontró la orden" que ocurría con alias
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Reducir texto informativo sobre el alias para mayor concisión
- Minimizar la salida de las funciones create_fj_alias() y remove_fj_alias()
- Eliminar mensajes innecesarios sobre la sesión y persistencia
- Mantener la funcionalidad mientras se mejora la experiencia del usuario
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Cambiar a un enfoque de alias en memoria para 'fj' en lugar de archivos en disco
- Usar comando 'alias' para crear el alias en la sesión actual de shell
- Eliminar alias con 'unalias' al cerrar sesión
- Simplificar el proceso de creación y eliminación del alias
- Mostrar instrucciones para hacer permanente el alias si el usuario lo desea
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Crear alias 'fj' que apunta a 'berg' al iniciar sesión
- Eliminar alias cuando se cierra sesión (--logout)
- Implementar funciones create_fj_alias() y remove_fj_alias()
- Usar script de shell y enlaces simbólicos para crear el alias
- Manejar diferentes ubicaciones según permisos (/usr/local/bin o ~/.local/bin)
- Proporcionar instrucciones para añadir ~/.local/bin al PATH si es necesario
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Modificar la función get_forgejo_url() para devolver solo el dominio sin protocolo
- Eliminar la adición del protocolo https:// que era innecesaria
- Ajustar para cumplir con el requisito de usar solo el dominio para BERG_BASE_URL
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Agregar función get_forgejo_url() para extraer URL de configuración git
- Configurar automáticamente BERG_BASE_URL antes de la autenticación
- Buscar en múltiples ubicaciones: configuración global, directorio actual y repos del HOME
- Extraer el dominio base de diferentes formatos de URL (https://, git@, etc.)
- Mejorar mensajes informativos sobre la URL del servidor utilizada
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Crear script para gestionar la autenticación con Forgejo/Codeberg
- Implementar parámetros --login (default) y --logout para iniciar/cerrar sesión
- Desencriptar el token almacenado en forgejo.sops.yaml usando SOPS
- Decodificar el token desde base64 y usarlo para autenticación
- Integrar con berg (CLI de Forgejo) para la autenticación segura
- Verificar requisitos (berg, SOPS) antes de proceder
- Usar DEVELOPER_DIR de base.lib para la ubicación estándar del token
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Añadir cversadm_token.sh a la tabla de herramientas para control de versiones
- Agregar una sección detallada sobre gestión de tokens para control de versiones
- Incluir descripción de características y funcionalidades del nuevo script
- Mantener consistencia con el formato de documentación existente
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Añadir variable global DEVELOPER_DIR=${HOME}/.developer a base.lib
- Eliminar definición redundante en cversadm_token.sh y usar la variable global
- Actualizar todas las referencias a la variable en las funciones del script
- Centralizar definición de la ruta para uso consistente en todo el proyecto
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Cambiar DEVELOPERS_DIR de "$HOME/.developers" a "$HOME/.developer"
- Actualizar comentarios para reflejar el cambio de ruta
- Mantener consistencia con el uso estándar de la carpeta .developer
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Reemplazar dialog_input_pass por llamada directa a dialog para mejor compatibilidad
- Usar --stdout para capturar correctamente la entrada del usuario
- Mejorar formato del cuadro de diálogo con dimensiones apropiadas (8x60)
- Mantener validaciones mientras se soluciona el problema de entrada en blanco
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implementar validación completa de tokens (longitud, formato, caracteres especiales)
- Encriptar tokens en base64 antes de guardarlos con SOPS
- Usar nombre de archivo temporal único con $$ para prevenir colisiones
- Añadir comprobaciones de seguridad adicionales para tokens
- Mover todos los mensajes de validación a developers.es
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Mover mensajes de error de SOPS a developers.es (cvmsg_013 y cvmsg_014)
- Modificar check_sops_installed para usar las variables de mensajes
- Mantener todos los mensajes en el archivo de idioma para facilitar localización
- Seguir la política de que todos los mensajes deben estar en developers.es
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Modificar check_sops_installed() para usar dialog en lugar de echo
- Usar dialog_error_box para mostrar mensajes de error en la interfaz gráfica
- Mejorar mensaje de error con instrucciones sobre cómo instalar SOPS
- Mantener consistencia con el estilo de interfaz del resto del script
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implementar política general persistente: verificar que dialog esté instalado
- Añadir función check_dialog_installed() para validar la disponibilidad de dialog
- Mostrar mensaje de error (head_001) si dialog no está instalado
- Agregar esta verificación como primer paso antes de ejecutar funciones de interfaz
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Añadir detección automática del idioma del shell (BIN_LANG=${LANG:0:2})
- Cargar archivos de mensajes según el idioma del sistema
- Seguir política general persistente para todos los scripts bash del proyecto
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Modificar la variable title para usar head_000 y head_002 en lugar de valor estático
- Asegurar consistencia con el diseño de otros scripts del sistema
- Utilizar las variables de mensajes estándar para el título
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Agregar 4 líneas en blanco al menú de selección de plataforma
- Aumentar el valor de la altura del menú de 5 a 9 líneas
- Mejorar la legibilidad y apariencia visual del menú
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Obtener DEVSPATH desde bin/config/devspath.dat para determinar la ubicación correcta
- Usar "devs" como valor predeterminado si el archivo de configuración no existe
- Configurar BIN_HOME usando la ruta obtenida para mayor flexibilidad
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Corregir ruta para cargar mensajes con load_messages
- Usar menu_actions en lugar de dialog_input_menu para mayor compatibilidad
- Añadir variables head_exit y head_key_end necesarias para menus
- Agregar inicialización de variables head_000 y head_002 para el título
- Incluir llamada a display_text_header para mostrar el encabezado
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Añadir variable head_error necesaria para diálogos de error
- Aumentar tamaño de ventana del menú para evitar problemas de visualización
- Mejorar comentarios para mayor claridad
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Implementa interfaz mediante dialog para seleccionar plataforma (Github, Gitlab, Forgejo)
- Solicita token mediante entrada segura (oculta)
- Encripta token con SOPS y lo guarda en ~/.developers/[plataforma].sops.yaml
- Añade mensajes en español en developers.es
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>