- Añadida nueva variable de mensaje zl_011 para Zettlr - Reemplazado mensaje de Helix por el mensaje específico de Zettlr - Corregido texto en el diálogo de solicitud de permisos de administrador 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
627 lines
No EOL
18 KiB
Bash
Executable file
627 lines
No EOL
18 KiB
Bash
Executable file
#!/bin/bash
|
|
#Script : zettlr_install.sh
|
|
#Apps : MRDEVS TOOLS
|
|
#Description : Instala Zettlr Markdown Editor con soporte multiplataforma
|
|
#Author : Cortana Rosero One <cortana@rosero.one>
|
|
#Generated : Created by Claude Code (claude-3-7-sonnet-20250219)
|
|
#Created : 2025/04/04 12:00:00
|
|
#Modified : 2025/04/04 12:00:00
|
|
#Version : 1.3.1
|
|
#Use Notes : Ejecutar sin parámetros para instalación interactiva
|
|
# -u para desinstalar
|
|
#==============================================================================
|
|
# Derechos de Autor 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
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
BIN_BASE="bin"
|
|
BIN_LIBS="lib"
|
|
BIN_MESG="msg"
|
|
BIN_LANG="head.es"
|
|
BIN_CFGS="config"
|
|
|
|
# Leer DEVSPATH desde el archivo de configuración o usar "devs" por defecto
|
|
if [ -f "$SCRIPT_DIR/$BIN_CFGS/devspath.dat" ]; then
|
|
DEVSPATH=$(cat "$SCRIPT_DIR/$BIN_CFGS/devspath.dat")
|
|
else
|
|
DEVSPATH="devs"
|
|
fi
|
|
|
|
# Cargar bibliotecas comunes
|
|
if [ -f "$SCRIPT_DIR/$BIN_LIBS/base.lib" ]; then
|
|
source "$SCRIPT_DIR/$BIN_LIBS/base.lib"
|
|
else
|
|
echo "Error: No se encontró la biblioteca base.lib"
|
|
exit 1
|
|
fi
|
|
|
|
# Cargar biblioteca de consola
|
|
if [ -f "$SCRIPT_DIR/$BIN_LIBS/console.lib" ]; then
|
|
source "$SCRIPT_DIR/$BIN_LIBS/console.lib"
|
|
else
|
|
echo "Error: No se encontró la biblioteca console.lib"
|
|
exit 1
|
|
fi
|
|
|
|
# Cargar mensajes en español
|
|
if [ -f "$SCRIPT_DIR/$BIN_MESG/$BIN_LANG" ]; then
|
|
source "$SCRIPT_DIR/$BIN_MESG/$BIN_LANG"
|
|
else
|
|
echo "Error: No se encontraron los archivos de mensajes"
|
|
exit 1
|
|
fi
|
|
|
|
# Configurar título
|
|
title="${head_000} ${head_002}"
|
|
apps_title="${zl_001}"
|
|
|
|
# Función para limpiar la pantalla y salir
|
|
function finish() {
|
|
clear
|
|
exit
|
|
}
|
|
|
|
# Función para ejecutar comandos con sudo si es necesario
|
|
run_cmd() {
|
|
if [ "$EUID" -eq 0 ]; then
|
|
"$@"
|
|
else
|
|
echo "$SUDO_PASS" | sudo -S "$@"
|
|
fi
|
|
|
|
# Devuelve el código de estado del último comando ejecutado
|
|
return $?
|
|
}
|
|
|
|
# Verificar si se está solicitando la desinstalación
|
|
UNINSTALL=0
|
|
if [ "$1" = "-u" ]; then
|
|
UNINSTALL=1
|
|
fi
|
|
|
|
# Definir la versión y URLs
|
|
ZETTLR_VERSION="3.0.3"
|
|
GITHUB_API_URL="https://api.github.com/repos/Zettlr/Zettlr/releases/latest"
|
|
|
|
# Función para obtener la última versión de Zettlr desde GitHub
|
|
get_latest_version() {
|
|
if command -v curl &>/dev/null; then
|
|
ZETTLR_LATEST_VERSION=$(curl -s $GITHUB_API_URL | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' | cut -c 2-)
|
|
if [ -n "$ZETTLR_LATEST_VERSION" ]; then
|
|
ZETTLR_VERSION=$ZETTLR_LATEST_VERSION
|
|
fi
|
|
fi
|
|
echo "Versión a instalar: $ZETTLR_VERSION"
|
|
}
|
|
|
|
# Función para detectar el sistema operativo
|
|
detect_os() {
|
|
if [ -f /etc/os-release ]; then
|
|
. /etc/os-release
|
|
OS=$NAME
|
|
VER=$VERSION_ID
|
|
elif [ -f /etc/lsb-release ]; then
|
|
. /etc/lsb-release
|
|
OS=$DISTRIB_ID
|
|
VER=$DISTRIB_RELEASE
|
|
elif [ -f /etc/debian_version ]; then
|
|
OS="Debian"
|
|
VER=$(cat /etc/debian_version)
|
|
elif [ -f /etc/redhat-release ]; then
|
|
OS=$(cat /etc/redhat-release | cut -d ' ' -f 1)
|
|
VER=$(cat /etc/redhat-release | grep -oE '[0-9]+\.[0-9]+')
|
|
elif [ "$(uname)" == "Darwin" ]; then
|
|
OS="macOS"
|
|
VER=$(sw_vers -productVersion)
|
|
elif [ "$(uname)" == "FreeBSD" ]; then
|
|
OS="FreeBSD"
|
|
VER=$(uname -r)
|
|
else
|
|
OS="Unknown"
|
|
VER="Unknown"
|
|
fi
|
|
|
|
echo "$OS"
|
|
}
|
|
|
|
# Función para obtener la arquitectura del sistema
|
|
get_arch() {
|
|
ARCH=$(uname -m)
|
|
|
|
# Normalizar la arquitectura
|
|
if [ "$ARCH" = "x86_64" ]; then
|
|
ARCH="amd64"
|
|
elif [[ "$ARCH" == "arm"* ]] || [ "$ARCH" = "aarch64" ]; then
|
|
ARCH="arm64"
|
|
else
|
|
ARCH="i386"
|
|
fi
|
|
|
|
echo $ARCH
|
|
}
|
|
|
|
# Función para instalar Zettlr en sistemas basados en Debian/Ubuntu
|
|
install_zettlr_debian() {
|
|
local arch=$(get_arch)
|
|
|
|
echo -e "\n${head_info}: Instalando dependencias necesarias..."
|
|
run_cmd apt update
|
|
run_cmd apt install -y wget
|
|
|
|
echo -e "\n${head_info}: Descargando Zettlr versión $ZETTLR_VERSION para $arch..."
|
|
|
|
if [ "$arch" = "amd64" ]; then
|
|
wget -O /tmp/zettlr.deb "https://github.com/Zettlr/Zettlr/releases/download/v${ZETTLR_VERSION}/Zettlr-${ZETTLR_VERSION}-amd64.deb"
|
|
elif [ "$arch" = "arm64" ]; then
|
|
wget -O /tmp/zettlr.deb "https://github.com/Zettlr/Zettlr/releases/download/v${ZETTLR_VERSION}/Zettlr-${ZETTLR_VERSION}-arm64.deb"
|
|
else
|
|
echo -e "\n${head_error}: Arquitectura $arch no soportada para Zettlr."
|
|
return 1
|
|
fi
|
|
|
|
echo -e "\n${head_info}: Instalando Zettlr..."
|
|
run_cmd apt install -y /tmp/zettlr.deb
|
|
rm -f /tmp/zettlr.deb
|
|
|
|
# Verificar la instalación
|
|
if command -v zettlr &>/dev/null || [ -f /usr/bin/zettlr ] || [ -f /opt/Zettlr/zettlr ]; then
|
|
echo -e "\n${head_success}: Zettlr ha sido instalado correctamente."
|
|
return 0
|
|
else
|
|
echo -e "\n${head_error}: No se pudo instalar Zettlr."
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Función para desinstalar Zettlr en sistemas basados en Debian/Ubuntu
|
|
uninstall_zettlr_debian() {
|
|
echo -e "\n${head_info}: Desinstalando Zettlr..."
|
|
run_cmd apt remove --purge -y zettlr
|
|
run_cmd apt autoremove -y
|
|
|
|
# Eliminar archivos de configuración residuales
|
|
echo -e "\n${head_info}: Limpiando archivos de configuración..."
|
|
rm -rf ~/.config/Zettlr
|
|
|
|
echo -e "\n${head_success}: Zettlr ha sido desinstalado correctamente."
|
|
return 0
|
|
}
|
|
|
|
# Función para instalar Zettlr en sistemas basados en Red Hat
|
|
install_zettlr_redhat() {
|
|
local arch=$(get_arch)
|
|
|
|
echo -e "\n${head_info}: Instalando dependencias necesarias..."
|
|
run_cmd dnf check-update
|
|
run_cmd dnf install -y wget
|
|
|
|
echo -e "\n${head_info}: Descargando Zettlr versión $ZETTLR_VERSION para $arch..."
|
|
|
|
if [ "$arch" = "amd64" ]; then
|
|
wget -O /tmp/zettlr.rpm "https://github.com/Zettlr/Zettlr/releases/download/v${ZETTLR_VERSION}/Zettlr-${ZETTLR_VERSION}.x86_64.rpm"
|
|
elif [ "$arch" = "arm64" ]; then
|
|
wget -O /tmp/zettlr.rpm "https://github.com/Zettlr/Zettlr/releases/download/v${ZETTLR_VERSION}/Zettlr-${ZETTLR_VERSION}.arm64.rpm"
|
|
else
|
|
echo -e "\n${head_error}: Arquitectura $arch no soportada para Zettlr."
|
|
return 1
|
|
fi
|
|
|
|
echo -e "\n${head_info}: Instalando Zettlr..."
|
|
run_cmd dnf install -y /tmp/zettlr.rpm
|
|
rm -f /tmp/zettlr.rpm
|
|
|
|
# Verificar la instalación
|
|
if command -v zettlr &>/dev/null || [ -f /usr/bin/zettlr ] || [ -f /opt/Zettlr/zettlr ]; then
|
|
echo -e "\n${head_success}: Zettlr ha sido instalado correctamente."
|
|
return 0
|
|
else
|
|
echo -e "\n${head_error}: No se pudo instalar Zettlr."
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Función para desinstalar Zettlr en sistemas basados en Red Hat
|
|
uninstall_zettlr_redhat() {
|
|
echo -e "\n${head_info}: Desinstalando Zettlr..."
|
|
run_cmd dnf remove -y zettlr
|
|
|
|
# Eliminar archivos de configuración residuales
|
|
echo -e "\n${head_info}: Limpiando archivos de configuración..."
|
|
rm -rf ~/.config/Zettlr
|
|
|
|
echo -e "\n${head_success}: Zettlr ha sido desinstalado correctamente."
|
|
return 0
|
|
}
|
|
|
|
# Función para instalar Zettlr en Arch Linux
|
|
install_zettlr_arch() {
|
|
echo -e "\n${head_info}: Actualizando repositorios..."
|
|
run_cmd pacman -Sy
|
|
|
|
echo -e "\n${head_info}: Instalando dependencias necesarias..."
|
|
run_cmd pacman -S --needed --noconfirm base-devel git
|
|
|
|
# Verificar si yay está instalado
|
|
if ! command -v yay &>/dev/null; then
|
|
echo -e "\n${head_info}: Instalando yay (AUR helper)..."
|
|
TMP_DIR=$(mktemp -d)
|
|
cd "$TMP_DIR"
|
|
git clone https://aur.archlinux.org/yay.git
|
|
cd yay
|
|
makepkg -si --noconfirm
|
|
cd
|
|
rm -rf "$TMP_DIR"
|
|
fi
|
|
|
|
echo -e "\n${head_info}: Instalando Zettlr desde AUR..."
|
|
yay -S --noconfirm zettlr-bin
|
|
|
|
# Verificar la instalación
|
|
if command -v zettlr &>/dev/null || [ -f /usr/bin/zettlr ]; then
|
|
echo -e "\n${head_success}: Zettlr ha sido instalado correctamente."
|
|
return 0
|
|
else
|
|
echo -e "\n${head_error}: No se pudo instalar Zettlr."
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Función para desinstalar Zettlr en Arch Linux
|
|
uninstall_zettlr_arch() {
|
|
echo -e "\n${head_info}: Desinstalando Zettlr..."
|
|
if pacman -Qi zettlr-bin &>/dev/null; then
|
|
run_cmd pacman -R --noconfirm zettlr-bin
|
|
elif pacman -Qi zettlr &>/dev/null; then
|
|
run_cmd pacman -R --noconfirm zettlr
|
|
fi
|
|
|
|
# Eliminar archivos de configuración residuales
|
|
echo -e "\n${head_info}: Limpiando archivos de configuración..."
|
|
rm -rf ~/.config/Zettlr
|
|
|
|
echo -e "\n${head_success}: Zettlr ha sido desinstalado correctamente."
|
|
return 0
|
|
}
|
|
|
|
# Función para instalar Zettlr en macOS
|
|
install_zettlr_macos() {
|
|
echo -e "\n${head_info}: Verificando si Homebrew está instalado..."
|
|
|
|
if ! command -v brew &>/dev/null; then
|
|
echo -e "\n${head_info}: Instalando Homebrew..."
|
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
fi
|
|
|
|
echo -e "\n${head_info}: Instalando Zettlr mediante Homebrew..."
|
|
brew install --cask zettlr
|
|
|
|
# Verificar la instalación
|
|
if [ -d "/Applications/Zettlr.app" ]; then
|
|
echo -e "\n${head_success}: Zettlr ha sido instalado correctamente."
|
|
return 0
|
|
else
|
|
echo -e "\n${head_error}: No se pudo instalar Zettlr."
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Función para desinstalar Zettlr en macOS
|
|
uninstall_zettlr_macos() {
|
|
echo -e "\n${head_info}: Desinstalando Zettlr..."
|
|
|
|
if command -v brew &>/dev/null; then
|
|
brew uninstall --cask zettlr
|
|
fi
|
|
|
|
# Eliminar la aplicación manualmente si brew no funcionó
|
|
if [ -d "/Applications/Zettlr.app" ]; then
|
|
rm -rf "/Applications/Zettlr.app"
|
|
fi
|
|
|
|
# Eliminar archivos de configuración
|
|
rm -rf ~/Library/Application\ Support/Zettlr
|
|
|
|
echo -e "\n${head_success}: Zettlr ha sido desinstalado correctamente."
|
|
return 0
|
|
}
|
|
|
|
# Función para instalar Zettlr en FreeBSD
|
|
install_zettlr_freebsd() {
|
|
echo -e "\n${head_info}: FreeBSD no tiene soporte oficial para Zettlr."
|
|
echo -e "${head_info}: Se puede intentar utilizar la versión AppImage o la instalación manual."
|
|
|
|
local arch=$(get_arch)
|
|
if [ "$arch" = "amd64" ]; then
|
|
echo -e "\n${head_info}: Descargando AppImage de Zettlr..."
|
|
fetch -o /tmp/Zettlr.AppImage "https://github.com/Zettlr/Zettlr/releases/download/v${ZETTLR_VERSION}/Zettlr-${ZETTLR_VERSION}-x86_64.AppImage"
|
|
|
|
chmod +x /tmp/Zettlr.AppImage
|
|
mkdir -p "$HOME/Applications"
|
|
mv /tmp/Zettlr.AppImage "$HOME/Applications/"
|
|
|
|
echo -e "\n${head_info}: Creando enlace simbólico..."
|
|
mkdir -p "$HOME/bin"
|
|
ln -sf "$HOME/Applications/Zettlr.AppImage" "$HOME/bin/zettlr"
|
|
|
|
echo -e "\n${head_success}: Zettlr ha sido instalado en $HOME/Applications/Zettlr.AppImage"
|
|
echo -e "${head_info}: Para ejecutar Zettlr, use: $HOME/bin/zettlr"
|
|
return 0
|
|
else
|
|
echo -e "\n${head_error}: Arquitectura $arch no soportada para Zettlr en FreeBSD."
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
# Función para desinstalar Zettlr en FreeBSD
|
|
uninstall_zettlr_freebsd() {
|
|
echo -e "\n${head_info}: Desinstalando Zettlr..."
|
|
|
|
# Eliminar AppImage
|
|
if [ -f "$HOME/Applications/Zettlr.AppImage" ]; then
|
|
rm -f "$HOME/Applications/Zettlr.AppImage"
|
|
fi
|
|
|
|
# Eliminar enlace simbólico
|
|
if [ -L "$HOME/bin/zettlr" ]; then
|
|
rm -f "$HOME/bin/zettlr"
|
|
fi
|
|
|
|
# Eliminar archivos de configuración
|
|
rm -rf "$HOME/.config/Zettlr"
|
|
|
|
echo -e "\n${head_success}: Zettlr ha sido desinstalado correctamente."
|
|
return 0
|
|
}
|
|
|
|
# Función principal para instalar Zettlr
|
|
install_zettlr() {
|
|
local os=$(detect_os)
|
|
local result=0
|
|
|
|
# Obtener la última versión disponible
|
|
get_latest_version
|
|
|
|
echo -e "\n${head_info}: Sistema operativo detectado: ${os}"
|
|
|
|
# Instalar según el sistema operativo
|
|
case "$os" in
|
|
*"Ubuntu"*|*"Debian"*|*"Linux Mint"*|*"Pop!_OS"*|*"elementary OS"*)
|
|
install_zettlr_debian
|
|
result=$?
|
|
;;
|
|
*"Fedora"*|*"Red Hat"*|*"CentOS"*|*"Rocky"*|*"AlmaLinux"*|*"Oracle Linux"*)
|
|
install_zettlr_redhat
|
|
result=$?
|
|
;;
|
|
*"Arch"*|*"Manjaro"*|*"EndeavourOS"*|*"Garuda"*)
|
|
install_zettlr_arch
|
|
result=$?
|
|
;;
|
|
*"macOS"*)
|
|
install_zettlr_macos
|
|
result=$?
|
|
;;
|
|
*"FreeBSD"*)
|
|
install_zettlr_freebsd
|
|
result=$?
|
|
;;
|
|
*)
|
|
echo -e "\n${head_error}: ${os_nofound}"
|
|
return 1
|
|
;;
|
|
esac
|
|
|
|
# Si la instalación fue exitosa, mostrar información adicional
|
|
if [ $result -eq 0 ]; then
|
|
# 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
|
|
}
|
|
|
|
# Función principal para desinstalar Zettlr
|
|
uninstall_zettlr() {
|
|
local os=$(detect_os)
|
|
local result=0
|
|
|
|
echo -e "\n${head_info}: Sistema operativo detectado: ${os}"
|
|
|
|
# Mostrar diálogo de confirmación
|
|
if command -v dialog &>/dev/null; then
|
|
dialog_yesno "¿Está seguro que desea ${head_delete} Zettlr Markdown Editor?"
|
|
if [ $? -ne 0 ]; then
|
|
echo -e "\n${head_info}: ${head_op_error}"
|
|
return 0
|
|
fi
|
|
else
|
|
read -p "¿Está seguro que desea ${head_delete} Zettlr Markdown Editor? (s/n): " CONFIRM
|
|
if [[ ! "$CONFIRM" =~ ^[Ss]$ ]]; then
|
|
echo -e "\n${head_info}: ${head_op_error}"
|
|
return 0
|
|
fi
|
|
fi
|
|
|
|
# Desinstalar según el sistema operativo
|
|
case "$os" in
|
|
*"Ubuntu"*|*"Debian"*|*"Linux Mint"*|*"Pop!_OS"*|*"elementary OS"*)
|
|
uninstall_zettlr_debian
|
|
result=$?
|
|
;;
|
|
*"Fedora"*|*"Red Hat"*|*"CentOS"*|*"Rocky"*|*"AlmaLinux"*|*"Oracle Linux"*)
|
|
uninstall_zettlr_redhat
|
|
result=$?
|
|
;;
|
|
*"Arch"*|*"Manjaro"*|*"EndeavourOS"*|*"Garuda"*)
|
|
uninstall_zettlr_arch
|
|
result=$?
|
|
;;
|
|
*"macOS"*)
|
|
uninstall_zettlr_macos
|
|
result=$?
|
|
;;
|
|
*"FreeBSD"*)
|
|
uninstall_zettlr_freebsd
|
|
result=$?
|
|
;;
|
|
*)
|
|
echo -e "\n${head_error}: ${os_nofound}"
|
|
return 1
|
|
;;
|
|
esac
|
|
|
|
return $result
|
|
}
|
|
|
|
# Si no se ejecuta como root, solicitar contraseña para escalamiento vía dialog
|
|
if [ "$EUID" -ne 0 ]; then
|
|
dialog_error_box "${head_superuser}" "${zl_011}"
|
|
dialog_input_pass "${npm_002}" "" ""
|
|
if [ $? -ne 0 ]; then
|
|
dialog_error_box "${head_error}" "${npm_003}"
|
|
finish
|
|
fi
|
|
SUDO_PASS="$value"
|
|
|
|
# Verificar que la contraseña funcione
|
|
echo "$SUDO_PASS" | sudo -S true &> /dev/null
|
|
if [ $? -ne 0 ]; then
|
|
dialog_error_box "${head_error}" "${npm_003}"
|
|
finish
|
|
fi
|
|
fi
|
|
|
|
# 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
|
|
fi
|
|
|
|
# Determinar acción a realizar
|
|
if [ $UNINSTALL -eq 1 ]; then
|
|
# Desinstalar si está instalado
|
|
if [ $ZETTLR_INSTALLED -eq 1 ]; then
|
|
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
|
|
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
|
|
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
|
|
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
|
|
dialog_error_box "${head_error}" "${zl_008}"
|
|
fi
|
|
else
|
|
dialog_error_box "${head_canceled}" "${head_op_error}"
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
# Salir
|
|
finish |