Carpincho/build/Deb64/DEBIAN/preinst
2026-09-29 23:32:03 -03:00

71 lines
3.1 KiB
Bash
Executable File

#!/bin/sh
# preinstalador script for Emalibre
# resumen de los parametros de este script:
# * <new-preinst> `install'
# * <new-preinst> `install' <old-version>
# * <new-preinst> `upgrade' <old-version>
# * <old-preinst> `abort-upgrade' <new-version>
set -e
echo ""
printf "\033[1;35m***************************************************************\n"
printf "Gracias por instalar EMA Libre Cliente (Carpincho)!!.\n"
printf '***************************************************************\033[0m\n'
echo ""
printf "\033[1;4m1) Comenzamos por verificar si ya existe configuracion personal...\033[0m\n"
case "$1" in
install|upgrade)
printf "\033[1;10m * 1.0) Se verifica y detiene si existe EMA Libre corriendo.\033[0m"
# 0. Se detiene emalibre si existe instancia corriendo.
# Versiones anteriores usaban stopall y borraban el PID sin parar.
# Detener únicamente EMA_Web, incluso durante la primera migración.
if [ -f /usr/share/emalibre/node_modules/forever/lib/forever.js ]; then
NODE=/usr/share/emalibre/node_modules/node/bin/node
# Compatibilidad al actualizar una instalación antigua sin runtime incluido.
if [ ! -x "$NODE" ]; then
NODE=$(command -v node || true)
fi
if [ -z "$NODE" ] || [ ! -x "$NODE" ]; then
echo "No se encontró Node para detener la instalación anterior." >&2
exit 1
fi
HOME=/root FOREVER_ROOT=/root/.forever "$NODE" - <<'JS'
const forever = require('/usr/share/emalibre/node_modules/forever');
const timer = setTimeout(() => process.exit(1), 15000);
forever.list(false, (err, processes) => {
if (err) { console.error(err); process.exit(1); }
if (!(processes || []).some(p => p.uid === 'EMA_Web')) {
clearTimeout(timer); process.exit(0);
}
forever.stop('EMA_Web').on('stop', () => process.exit(0))
.on('error', err => { console.error(err); process.exit(1); });
});
JS
fi
printf "\033[1;32m --> OK. \033[0m\n"
# 1. Se consulta si existe el archivo de configuracion
if [ -f "/usr/share/emalibre/conf/ConfiguracionGeneral.js" ]; then
printf "\033[1;10m * 1.1) Existe un archivo de configuración en conf/, se realiza backup.\033[0m"
cp -f /usr/share/emalibre/conf/ConfiguracionGeneral.js /tmp || true
printf "\033[1;32m --> OK. \033[0m\n"
elif [ -f "/usr/share/emalibre/package.nw/conf/ConfiguracionGeneral.js" ]; then
printf "\033[1;10m * 1.1) Existe un archivo de configuración en package.nw/conf/, se realiza backup.\033[0m"
cp -f /usr/share/emalibre/package.nw/conf/ConfiguracionGeneral.js /tmp || true
printf "\033[1;32m --> OK. \033[0m\n"
else
printf "\033[1;10m * 1.1) Es una instalación nueva, no existe archivo de configuración.\033[0m"
printf "\033[1;32m --> OK. \033[0m\n"
fi
printf "\033[1;4m2) Comienza la instalación:\033[0m\n"
;;
abort-upgrade)
printf "\033[1;31m Opps... ocurrio un error!!. \033[0m\n"
;;
*)
printf "\033[1;31mOpps. preinst llamado con un argumento desconocido \`$1' \033[0m\n" >&2
exit 1
;;
esac
exit 0