309 lines
14 KiB
Bash
Executable File
309 lines
14 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#PARAMETRIA
|
|
VERSION=`grep Version src/conf/ConfiguracionGlobal.js | sed -e "s/'Version': //g" | sed -e "s/,//g" | sed -e "s/^[ \t]*//"`
|
|
NWJS_VERSION='0.28.4' # Es la ultima compilada para ARM, siempre mirar la url https://github.com/LeonardLaszlo/nw.js-armv7-binaries/releases
|
|
#NWJS_ARM='https://github.com/LeonardLaszlo/nw.js-armv7-binaries/releases/download/v' Se comenta se copio el tar al server de gugler por velocidad-
|
|
NODE_CONSOLE='https://nodejs.org/dist/v14.4.0/node-v14.14.0-linux-armv7l.tar.xz' # Version node, siempre mirar la url
|
|
NODE_NOMBRE='node-v14.14.0-linux-armv7l'
|
|
DESCARGA_NWJS='https://nube.gugler.com.ar/index.php/s/iznYtBE7aBtXYdN/download' #server de gugler nwjs 28.4
|
|
|
|
# DEPENDENCIAS
|
|
NW_GYP_INST=`npm list -g | grep nw-gyp@ | wc -l`
|
|
NW_BUILDER_INST=`npm list | grep nw-builder@ | wc -l`
|
|
node=`node -v | wc -l`
|
|
npm=`npm -v | wc -l`
|
|
|
|
# Metodo Spinner
|
|
function spinner() {
|
|
local info="$1"
|
|
local pid=$!
|
|
local delay=0.25
|
|
local spinstr='|/-\'
|
|
while kill -0 $pid 2> /dev/null; do
|
|
local temp=${spinstr#?}
|
|
printf " [%c] $info" "$spinstr"
|
|
local spinstr=$temp${spinstr%"$temp"}
|
|
sleep $delay
|
|
local reset="\b\b\b\b\b"
|
|
for ((i=1; i<=$(echo $info | wc -c); i++)); do
|
|
reset+="\b"
|
|
done
|
|
printf $reset
|
|
done
|
|
printf " \b\b\b\b"
|
|
}
|
|
|
|
# ***********************************************************
|
|
# EJECUCION DE CODIGO -- LIMPIA Y VERIFICA ENTORNO
|
|
# ***********************************************************
|
|
|
|
echo ""
|
|
echo "*************************************************"
|
|
echo "* Comprobando y preparando el entorno ***"
|
|
echo "*************************************************"
|
|
echo ""
|
|
printf "\033[1;4m--->Versión de EMAl: $VERSION \033[0m\n"
|
|
printf "\033[1;4m--->Versión de NWJs: $NWJS_VERSION \033[0m\n"
|
|
echo ""
|
|
printf "\033[1;10m1) Limpiando compilación anterior. \033[0m"
|
|
sudo mkdir build/Deb64/usr/bin 2> /dev/null
|
|
sudo mkdir build/Deb64/usr/share/emalibre 2> /dev/null
|
|
sudo rm -fr build/emalibre
|
|
sudo rm -fr build/Deb64/usr/bin/*
|
|
sudo rm -fr build/Deb64/usr/share/emalibre/*
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m2) Instalando/comprobando paquetes necesarios con APT. \033[0m"
|
|
sudo apt-get -y -qq install build-essential git wget libusb-1.0-0 libusb-1.0-0-dev libudev-dev wget
|
|
sudo chmod -R 777 build/Deb64
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m3) Verificando node y dependencias: \033[0m\n"
|
|
printf "\033[1;10m 3.1) Comprobando NWJS descargado en cache para arm. \033[0m"
|
|
if [ -d "cache/$NWJS_VERSION-normal" ]; then
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
else
|
|
printf "\033[5;91m --> NO. \033[0m"
|
|
printf "\033[1;10m -> Se descarga de NWJS. \033[0m\n"
|
|
mkdir -p "cache/$NWJS_VERSION-normal"
|
|
cd "cache/$NWJS_VERSION-normal"
|
|
wget $DESCARGA_NWJS -O nwjs.tar.xz -q --show-progress
|
|
tar -xf nwjs.tar.xz
|
|
rm -fr nwjs.tar.xz
|
|
mv nwjs-v${NWJS_VERSION}-linux-arm linux64
|
|
rm -fr nwjs-v${NWJS_VERSION}-linux-arm
|
|
cd ../..
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
fi
|
|
printf "\033[1;10m 3.2) Comprobando si esta node global. \033[0m"
|
|
if [ $node = "1" ]
|
|
then
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
else
|
|
printf "\033[5;91m --> NO. \033[0m"
|
|
printf "\033[1;32m --> Se sale, por favor instale manualmente. \033[0m\n"
|
|
exit 0
|
|
fi
|
|
printf "\033[1;10m 3.3) Comprobando si esta npm global. \033[0m"
|
|
if [ $npm = "1" ]
|
|
then
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
else
|
|
printf "\033[5;91m --> NO. \033[0m"
|
|
printf "\033[1;32m --> Se sale, por favor instale manualmente. \033[0m\n"
|
|
exit 0
|
|
fi
|
|
printf "\033[1;10m 3.4) Comprobando si esta nw-gyp como global. \033[0m"
|
|
if [ $NW_GYP_INST = "1" ]
|
|
then
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
else
|
|
printf "\033[5;91m --> NO. \033[0m"
|
|
npm install -g nw-gyp -no-audit -silent 2> /tmp/ema.log 1> /dev/null
|
|
printf "\033[1;32m --> Se instalo. \033[0m\n"
|
|
fi
|
|
printf "\033[1;10m 3.5) Comprobando si nw-builder localmente. \033[0m"
|
|
if [ $NW_BUILDER_INST = "1" ]
|
|
then
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
else
|
|
printf "\033[5;91m --> NO. \033[0m"
|
|
npm install -no-audit -silent 2> /tmp/ema.log 1> /dev/null
|
|
printf "\033[1;32m --> Se instalo. \033[0m\n"
|
|
fi
|
|
printf "\033[1;10m4) Empaquetando el proyecto. \033[0m"
|
|
CHECK_EMPAQUETADO=`node empaquetarArm.js | grep "Correcto!" | wc -l`
|
|
if [ "${CHECK_EMPAQUETADO}" -eq "1" ]; then printf "\033[1;32m --> OK. \033[0m\n"; else printf "\033[5;91m --> ERROR. Problema empaquetando con nw-builder. \033[0m\n";exit 1; fi
|
|
sudo mv build/emalibre/linux64 build/emalibre/arm
|
|
printf "\033[1;10m5) Aplicando permisos al proyecto. \033[0m"
|
|
sudo chmod -R 777 build/emalibre/arm & spinner "Procesando..."
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m6) Eliminando node_modules. \033[0m"
|
|
sudo rm -fr build/emalibre/arm/node_modules & spinner "Procesando..."
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m7) Generando node_modules con NPM. \033[0m"
|
|
cd build/emalibre/arm
|
|
npm install forever express node-hid nodemailer targz terminal-kit bootstrap bootstrap-select datatables datatables-buttons jquery notify-js-lib nprogress popper.js chart.js --production 2> /tmp/ema.log 1> /dev/null & spinner "Procesando..."
|
|
printf "\033[1;32m \033[0m\n"
|
|
printf "\033[1;10m8)Descargando la version de NWJS para ARM: \033[0m\n"
|
|
wget $NODE_CONSOLE -O node -q --show-progress
|
|
tar xf node
|
|
rm -f node
|
|
rm -f *.tar.xz
|
|
mv $NODE_NOMBRE node_modules/node
|
|
cp -R node_modules/node-hid ../
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m 8.1) Corriendo postscript particular para ARM y NW.js. \033[0m"
|
|
npm run postARM 2> /tmp/ema.log 1> /dev/null & spinner "Procesando..."
|
|
CHECK_NW_NODE_BUILD=`cat /tmp/ema.log | grep "gyp info ok" | wc -l`
|
|
if [ "${CHECK_NW_NODE_BUILD}" -eq "1" ]; then printf "\033[1;32m --> OK. \033[0m\n"; else printf "\033[5;91m --> ERROR. Verifique el modulo NW con node-hid. \033[0m\n";exit 1; fi
|
|
printf "\033[1;10m9) Se purgan los tanques y logs. \033[0m"
|
|
sudo echo "" > logs/debug.log
|
|
sudo echo "[]" > logs/TanquePendientes.log
|
|
sudo echo "[]" > logs/registro_diario.log
|
|
printf "\033[1;32m --> OK. \033[0m\n";
|
|
printf "\033[1;10m 9.1) Se blanque el archivo de Configuracion General. \033[0m"
|
|
sudo cp ../../conf/ConfiguracionGeneral.js conf/ConfiguracionGeneral.js
|
|
cd ../../..
|
|
printf "\033[1;32m --> OK. \033[0m\n";
|
|
|
|
# **************************************************************
|
|
# Compilar EMA Libre Cliente (Carpincho) en modo GRAFICO Desktop
|
|
# **************************************************************
|
|
echo ""
|
|
echo ""
|
|
echo "*************************************************"
|
|
echo "* Build EMA Libre Cliente Grafico - ARM *"
|
|
echo "*************************************************"
|
|
echo ""
|
|
printf "\033[1;10m1) Limpiando archivos temporales. \033[0m"
|
|
sudo rm -f build/Deb64/DEBIAN/control
|
|
sudo rm -fr build/Deb64/usr/bin/*
|
|
sudo rm -fr build/Deb64/usr/share/emalibre/*
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m2) Copiando los fuentes de EMA Libre para 64bit. \033[0m"
|
|
sudo cp -R build/emalibre/arm/* build/Deb64/usr/share/emalibre/
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m3) Remplazando el archivo de control DEB. \033[0m"
|
|
sudo cp -f build/controlDeb/control_arm_gui build/Deb64/DEBIAN/control & spinner "Procesando..."
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m4) Aplicando permisos necesarios. \033[0m"
|
|
sudo chmod +x build/Deb64/usr/share/emalibre/emalibre
|
|
sudo chmod 0755 build/Deb64/DEBIAN
|
|
sudo chmod 0755 build/Deb64/DEBIAN/postrm
|
|
sudo chmod 0755 build/Deb64/DEBIAN/postinst
|
|
sudo chmod 0755 build/Deb64/DEBIAN/preinst
|
|
sudo chown -R root:root build/Deb64
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m5) Generando enlaces simbolicos del binario. \033[0m"
|
|
cd build/Deb64/usr/bin/
|
|
sudo ln -s ../share/emalibre/emalibre emalibre
|
|
cd ../../..
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m6) Eliminando node para modo GUI y la intefaz para consola/web. \033[0m"
|
|
# se mueve el servicio desde al temporal
|
|
sudo mv Deb64/etc/init.d tmp
|
|
sudo mv Deb64/etc/emalibre_modo tmp
|
|
sudo rm -fr Deb64/usr/share/emalibre/node_modules/node
|
|
sudo rm -fr Deb64/usr/share/emalibre/node_modules/express
|
|
sudo rm -fr Deb64/usr/share/emalibre/gui_web
|
|
sudo rm -fr Deb64/usr/share/emalibre/node_modules/forever
|
|
sudo rm -fr Deb64/usr/share/emalibre/node_modules/forever-agent
|
|
sudo rm -fr Deb64/usr/share/emalibre/node_modules/forever-monitor
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m7) Generando Paquete Deb para GUI ARM. \033[0m\n"
|
|
sudo dpkg -b Deb64 debs/"emalibre-gui-arm_$VERSION.deb"
|
|
# se vuelve el servicio desde el temporal
|
|
sudo mv tmp/init.d Deb64/etc
|
|
sudo mv tmp/emalibre_modo Deb64/etc/emalibre_modo
|
|
printf "\033[5;10m Finalizo con exito, build/debs/emalibre-gui-arm_$VERSION.deb. \033[0m"
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m8) Limpiando archivos temporales. \033[0m"
|
|
cd ..
|
|
sudo rm -f build/Deb64/DEBIAN/control
|
|
sudo rm -fr build/Deb64/usr/bin/*
|
|
sudo rm -fr build/Deb64/usr/share/emalibre/*
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
|
|
# ***********************************************************
|
|
# Compilar EMA Libre Cliente (Carpincho) en modo CONSOLA
|
|
# ***********************************************************
|
|
echo ""
|
|
echo ""
|
|
echo "*************************************************"
|
|
echo "* Build EMA Libre Cliente Consola - ARM *"
|
|
echo "*************************************************"
|
|
echo ""
|
|
printf "\033[1;10m1) Limpiando archivos temporales. \033[0m"
|
|
sudo rm -f build/Deb64/DEBIAN/control
|
|
sudo rm -fr build/Deb64/usr/bin/*
|
|
sudo rm -fr build/Deb64/usr/share/emalibre/*
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m2) Copiando los fuentes de EMA Libre para ARM. \033[0m"
|
|
sudo cp -R build/emalibre/arm/core build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/logs build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/conf build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/tmp build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/node_modules build/Deb64/usr/share/emalibre/
|
|
sudo rm -fr build/Deb64/usr/share/emalibre/node_modules/node-hid
|
|
sudo cp -R build/emalibre/node-hid build/Deb64/usr/share/emalibre/node_modules
|
|
sudo cp -R build/emalibre/arm/CHANGELOG build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/COPYING build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/AUTHORS build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/package.json build/Deb64/usr/share/emalibre/
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m3) Remplazando el archivo de control DEB. \033[0m"
|
|
sudo cp -f build/controlDeb/control_arm_console build/Deb64/DEBIAN/control & spinner "Procesando..."
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m4) Aplicando permisos necesarios. \033[0m"
|
|
sudo chmod 0755 build/Deb64/DEBIAN
|
|
sudo chmod 0755 build/Deb64/DEBIAN/postrm
|
|
sudo chmod 0755 build/Deb64/DEBIAN/postinst
|
|
sudo chmod 0755 build/Deb64/DEBIAN/preinst
|
|
sudo chown -R root:root build/Deb64
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
cd build
|
|
printf "\033[1;10m7) Generando Paquete Deb para Consola ARM. \033[0m\n"
|
|
sudo dpkg -b Deb64 debs/"emalibre-consola-arm_$VERSION.deb"
|
|
printf "\033[5;10m Finalizo con exito, build/debs/emalibre-console-arm_$VERSION.deb. \033[0m"
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m8) Limpiando archivos temporales. \033[0m"
|
|
cd ..
|
|
sudo rm -f build/Deb64/DEBIAN/control
|
|
sudo rm -fr build/Deb64/usr/bin/*
|
|
sudo rm -fr build/Deb64/usr/share/emalibre/*
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
echo ""
|
|
|
|
# ***********************************************************
|
|
# Compilar EMA Libre Cliente (Carpincho) en modo CONSOLA/WEB
|
|
# ***********************************************************
|
|
echo ""
|
|
echo ""
|
|
echo "*************************************************"
|
|
echo "* Build EMA Libre Cliente Web - ARM *"
|
|
echo "*************************************************"
|
|
echo ""
|
|
printf "\033[1;10m1) Limpiando archivos temporales. \033[0m"
|
|
sudo rm -f build/Deb64/DEBIAN/control
|
|
sudo rm -fr build/Deb64/usr/bin/*
|
|
sudo rm -fr build/Deb64/usr/share/emalibre/*
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m2) Copiando los fuentes de EMA Libre para ARM. \033[0m"
|
|
sudo cp -R build/emalibre/arm/core build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/logs build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/conf build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/gui_web build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/gui_common build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/tmp build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/node_modules build/Deb64/usr/share/emalibre/
|
|
sudo rm -fr build/Deb64/usr/share/emalibre/node_modules/node-hid
|
|
sudo cp -R build/emalibre/node-hid build/Deb64/usr/share/emalibre/node_modules
|
|
sudo cp -R build/emalibre/arm/CHANGELOG build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/COPYING build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/AUTHORS build/Deb64/usr/share/emalibre/
|
|
sudo cp -R build/emalibre/arm/package.json build/Deb64/usr/share/emalibre/
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m3) Remplazando el archivo de control DEB. \033[0m"
|
|
sudo cp -f build/controlDeb/control_arm_web build/Deb64/DEBIAN/control & spinner "Procesando..."
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m4) Aplicando permisos necesarios. \033[0m"
|
|
sudo chmod 0755 build/Deb64/DEBIAN
|
|
sudo chmod 0755 build/Deb64/DEBIAN/postrm
|
|
sudo chmod 0755 build/Deb64/DEBIAN/postinst
|
|
sudo chmod 0755 build/Deb64/DEBIAN/preinst
|
|
sudo chown -R root:root build/Deb64
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
cd build
|
|
printf "\033[1;10m7) Generando Paquete Deb para WEB en ARM. \033[0m\n"
|
|
sudo dpkg -b Deb64 debs/"emalibre-web-arm_$VERSION.deb"
|
|
printf "\033[5;10m Finalizo con exito, build/debs/emalibre-web-arm_$VERSION.deb. \033[0m"
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
printf "\033[1;10m8) Limpiando archivos temporales. \033[0m"
|
|
cd ..
|
|
sudo rm -f build/Deb64/DEBIAN/control
|
|
sudo rm -fr build/Deb64/usr/bin/*
|
|
sudo rm -fr build/Deb64/usr/share/emalibre/*
|
|
sudo rm -fr build/emalibre
|
|
printf "\033[1;32m --> OK. \033[0m\n"
|
|
echo ""
|