71 lines
3.1 KiB
Bash
Executable File
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
|