[IMPROVED] Estandarización completa de zettlr_install.sh

- Adoptado formato consistente con helix_install.sh
- Añadidas variables de mensajes específicas para Zettlr (zl_*)
- Implementado sistema de barra de progreso para la instalación
- Mejorados diálogos con formato adecuado para la biblioteca console.lib
- Reestructurado el flujo de instalación siguiendo el patrón del proyecto

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Mauro Rosero P. 2025-04-04 10:20:49 -05:00
parent 233fdc277c
commit 95f83d5be3
Signed by: mrosero
GPG key ID: 83BD2A5F674B7E26
2 changed files with 106 additions and 32 deletions

View file

@ -168,3 +168,14 @@ hx_009="¿Desea instalar Helix Editor?"
hx_010="Instalación en progreso..."
hx_011="Se requiere acceso root para instalar Helix."
hx_012="Creando directorio de destino..."
zl_001="Instalador de Zettlr Markdown Editor"
zl_002="Este script instalará Zettlr Markdown Editor. Soporta Arch Linux, Debian/Ubuntu, Fedora, FreeBSD y macOS (Homebrew)."
zl_003="Descargando la última versión de Zettlr..."
zl_004="Instalando Zettlr..."
zl_005="Configurando Zettlr..."
zl_006="Zettlr instalado exitosamente."
zl_007="Versión de Zettlr instalada:"
zl_008="Zettlr no se instaló correctamente."
zl_009="¿Desea instalar Zettlr Markdown Editor?"
zl_010="Instalación en progreso..."

View file

@ -65,8 +65,8 @@ else
fi
# Configurar título
title="Zettlr Markdown Editor"
apps_title="MRDEVS TOOLS"
title="${head_000} ${head_002}"
apps_title="${zl_001}"
# Verificar si se está solicitando la desinstalación
UNINSTALL=0
@ -408,12 +408,15 @@ install_zettlr() {
# Si la instalación fue exitosa, mostrar información adicional
if [ $result -eq 0 ]; then
echo -e "\n${head_info}: Información de Zettlr:"
echo -e " - Zettlr es un editor Markdown moderno con enfoque académico"
echo -e " - Incluye características como editor Markdown WYSIWYG, soporte para Zettelkasten"
echo -e " - Integración con Pandoc y LaTeX para exportación de documentos"
echo -e " - Soporta Markdown, Citas, Referencias y más"
echo -e " - Sitio web oficial: https://www.zettlr.com/"
# La información se mostrará después del gauge
INSTALL_SUCCESS=1
ZETTLR_INFO="Zettlr es un editor Markdown moderno con enfoque académico\n"
ZETTLR_INFO+="- Incluye editor Markdown WYSIWYG y soporte para Zettelkasten\n"
ZETTLR_INFO+="- Integración con Pandoc y LaTeX para exportación de documentos\n"
ZETTLR_INFO+="- Soporte para Markdown, Citas, Referencias y más\n"
ZETTLR_INFO+="- Sitio web oficial: https://www.zettlr.com/"
else
INSTALL_SUCCESS=0
fi
return $result
@ -472,57 +475,117 @@ uninstall_zettlr() {
return $result
}
# Mostrar encabezado
echo -e "\n=== ${head_installing} Zettlr Markdown Editor (${head_version} $ZETTLR_VERSION) ==="
# Mensaje de bienvenida
clear
dialog_error_box "${zl_001}" "${zl_002}"
# Verificar si Zettlr ya está instalado
ZETTLR_INSTALLED=0
if command -v zettlr &>/dev/null || [ -f /usr/bin/zettlr ] || [ -f /opt/Zettlr/zettlr ] || [ -d "/Applications/Zettlr.app" ]; then
ZETTLR_INSTALLED=1
echo -e "\n${head_info}: Zettlr ya está instalado en el sistema."
fi
# Determinar acción a realizar
if [ $UNINSTALL -eq 1 ]; then
# Desinstalar si está instalado
if [ $ZETTLR_INSTALLED -eq 1 ]; then
uninstall_zettlr
dialog_yesno "¿${head_delete} Zettlr Markdown Editor?"
if [ $? -eq 0 ]; then
uninstall_zettlr
if [ $? -eq 0 ]; then
dialog_error_box "${head_success}" "Zettlr ha sido desinstalado correctamente."
else
dialog_error_box "${head_error}" "No se pudo desinstalar Zettlr."
fi
else
dialog_error_box "${head_canceled}" "${head_op_error}"
fi
else
echo -e "\n${head_info}: Zettlr no está instalado. Nada que desinstalar."
dialog_error_box "${head_info}" "Zettlr no está instalado. Nada que desinstalar."
fi
else
# Instalar o reinstalar
if [ $ZETTLR_INSTALLED -eq 1 ]; then
# Preguntar si desea reinstalar
if command -v dialog &>/dev/null; then
dialog_yesno "Zettlr ${head_version} ya está instalado.\n\n¿Desea reinstalarlo?"
if [ $? -eq 0 ]; then
uninstall_zettlr && install_zettlr
fi
else
read -p "Zettlr ${head_version} ya está instalado. ¿Desea reinstalarlo? (s/n): " REINSTALL
if [[ "$REINSTALL" =~ ^[Ss]$ ]]; then
dialog_yesno "Zettlr ${head_version} ya está instalado.\n\n¿Desea reinstalarlo?"
if [ $? -eq 0 ]; then
# Mostrar un progress bar para indicar el avance de la instalación
(
# Inicializar progreso
echo 0; sleep 1
echo 20; echo "# ${zl_003}"
sleep 1
echo 40; echo "# ${zl_004}"
sleep 1
echo 60; echo "# ${zl_005}"
# Desinstalar e instalar Zettlr
uninstall_zettlr && install_zettlr
INSTALL_RESULT=$?
# Verificar el resultado de la instalación
if [ $INSTALL_RESULT -eq 0 ]; then
echo 90; echo "# ${zl_006}"
else
echo 90; echo "# ${zl_008}"
fi
sleep 1
# Finalizar
echo 100
sleep 1
) | dialog --backtitle "${title}" --title "${apps_title}" --gauge "${zl_010}" 10 70 0
# Verificar la versión instalada
if [ $INSTALL_SUCCESS -eq 1 ]; then
dialog_error_box "${npm_014}" "${zl_006}\n\n${ZETTLR_INFO}"
else
dialog_error_box "${head_error}" "${zl_008}"
fi
fi
else
# Preguntar si desea instalar
if command -v dialog &>/dev/null; then
dialog_yesno "¿Desea instalar Zettlr Markdown Editor?\n\nEditor Markdown avanzado con soporte para Zettelkasten, LaTeX y Pandoc."
if [ $? -eq 0 ]; then
dialog_yesno "${zl_009}"
if [ $? -eq 0 ]; then
# Mostrar un progress bar para indicar el avance de la instalación
(
# Inicializar progreso
echo 0; sleep 1
echo 20; echo "# ${zl_003}"
sleep 1
echo 40; echo "# ${zl_004}"
sleep 1
echo 60; echo "# ${zl_005}"
# Instalar Zettlr
install_zettlr
INSTALL_RESULT=$?
# Verificar el resultado de la instalación
if [ $INSTALL_RESULT -eq 0 ]; then
echo 90; echo "# ${zl_006}"
else
echo 90; echo "# ${zl_008}"
fi
sleep 1
# Finalizar
echo 100
sleep 1
) | dialog --backtitle "${title}" --title "${apps_title}" --gauge "${zl_010}" 10 70 0
# Verificar la versión instalada
if [ $INSTALL_SUCCESS -eq 1 ]; then
dialog_error_box "${npm_014}" "${zl_006}\n\n${ZETTLR_INFO}"
else
echo -e "\n${head_info}: ${head_op_error}"
dialog_error_box "${head_error}" "${zl_008}"
fi
else
read -p "¿Desea instalar Zettlr Markdown Editor? (s/n): " CONFIRM
if [[ "$CONFIRM" =~ ^[Ss]$ ]]; then
install_zettlr
else
echo -e "\n${head_info}: ${head_op_error}"
fi
dialog_error_box "${head_canceled}" "${head_op_error}"
fi
fi
fi
echo -e "\n=== ${head_success}: ${head_exit} ==="
# Salir
finish