#!/bin/bash

#verlibnspr4						Versión instalada en el sistema del paquete libnspr4
#ver1								Versión instalada a comparar del paquete libnspr4 con la versión necesaria
#res1								Resultado de la comparación 0=true 1=false

#verlibnss3							Versión instalada en el sistema del paquete libnss3 
#ver2								Versión instalada a comparar del paquete libnss3 con la versión necesaria
#res2								Resultado de la comparación 0=true 1=false

#verlibnss3tools					Versión intalada en el sistema del paquete libnss3-tools
#ver3								Versión instalada a comparar del paquete libnss3-tools con la versión necesaria
#res3								Resultado de la comparación 0=true 1=false

#verautofirma						Versión intalada en el sistema del paquete AutoFirma
#ver4								Versión instalada a comparar del paquete AutoFirma con la versión a instalar
#res4								Resultado de la comparación 0=true 1=false

libnspr4necesario=4.13.1
libnss3necesario=3.28
libnss3toolsnecesario=3.28.4
autofirmanecesario=1.6.5

IPEQUIPO=$(hostname -I)
LOGFILE="/opt/cofpo/LOG_AUT_$IPEQUIPO"
LOGDATE=$(date)


#Función de log
logprint() {
    echo "$(date +%T): $*" >> $LOGFILE
}

#Descarga la carpeta jar de openjdk
#Comprueba si existe la carpeta /opt/cofpo y la carpeta /opt/cofpo/openjdk si no existen estas carpetas las crea y descarga los archivos jre de openjdk8, descomprime la carpeta jre en /opt/cofpo/openjdk y añade permisos a /opt/cofpo

if [ -d /opt/cofpo/ ]; then echo "La carpeta /opt/cofpo/ ya existe"; echo "---------- Log of $0 for $LOGDATE equip $IPEQUIPO ----------" >> $LOGFILE; logprint "La carpeta /opt/cofpo/ ya existe"; else mkdir /opt/cofpo/; chmod 777 /opt/cofpo; echo "---------- Log of $0 for $LOGDATE equip $IPEQUIPO ----------" >> $LOGFILE; logprint "Se crea la carpeta /opt/cofpo";
fi 

cd /opt/cofpo/

if [ -d /opt/cofpo/openjdk8/ ]; then echo "La carpeta /opt/cofpo/openjdk8 ya existe"; logprint "La carpeta /opt/cofpo/openjdk8 ya existe"; else wget http://web.cofpo.org/tl_files/01.NT/Pablo/Autofirma1-6-5/java-8-openjdk-jre.tar; mkdir /opt/cofpo/openjdk8/; tar -xf java-8-openjdk-jre.tar -C /opt/cofpo/openjdk8/; rm /opt/cofpo/java-8-openjdk-jre.tar; logprint "Se crea la carpeta /opt/cofpo/openjdk se descomprime openjdk8 y se elimina el archivo fuente";
fi

#Compara la version instalada de libnspr4 para comprobar si es necesario instalarla por dependencia de libnss3, ha de ser mayor o igual a la 4.13.1 
logprint "Se compara la versión instalada de libnspr4"

verlibnspr4=$(dpkg -s libnspr4 | grep "Version")
ver1=$(echo ${verlibnspr4:11:6})

logprint "Versión de libnspr4 necesaria $libnspr4necesario "
logprint "Versión de libnspr4 instalada $ver1"

dpkg --compare-versions $ver1 ge $libnspr4necesario
res1=$(echo $?)

if	[ $res1 -eq 0 ]; then instalalibnspr4=0; logprint "Versión de libnspr4 instalada igual o superior a la necesaria";
	else instalalibnspr4=1; wget http://actualizaciones.cofpo.org/tl_files/01.NT/Pablo/Autofirma1-6-5/libnspr4_4.13.1-0ubuntu0.14.04.1_i386.deb; logprint "Versión de libnspr4 instalada inferior a la necesaria se descarga";
fi

#compara la version instalada de libnss3 para comprobar si es necesario instalarla por dependencias de libnss3-tools
logprint "Se compara la versión instalada de libnss3"

verlibnss3=$(dpkg -s libnss3 | grep "Version")
ver2=$(echo ${verlibnss3:11:6})

logprint "Versión de libnss3 necesaria $libnss3necesario "
logprint "Versión de libnss3 instalada $ver2"


dpkg --compare-versions $ver2 ge $libnss3necesario
res2=$(echo $?)

if  [ $res2 -eq 0 ]; then instalalibnss3=0; logprint "Versión de libnss3 instalada igual o superior a la necesaria";
    else instalalibnss3=1; wget http://actualizaciones.cofpo.org/tl_files/01.NT/Pablo/Autofirma1-6-5/libnss3_3.28.4-0ubuntu0.16.04.1_i386.deb; logprint "Versión de libnss3 instalada inferior a la necesaria se descarga";
fi


#Compara la version instalada de libnss3-tools para comprobar si es necesario instalarla por dependencia de Autofirma 1.6.5, ha de ser mayor o igual a la 3.28.4
logprint "Se compara la versión instalada de libnss3-tools"

verlibnss3tools=$(dpkg -s libnss3-tools | grep "Version")
ver3=$(echo ${verlibnss3tools:11:6})

logprint "Versión de libnss3-tools necesaria $libnss3toolsnecesario "
logprint "Versión de libnss3-tools instalada $ver3"

dpkg --compare-versions $ver3 ge $libnss3toolsnecesario
res3=$(echo $?)

if	[ $res3 -eq 0 ]; then instalalibnss3tools=0; logprint "Versión de libnss3-tools instalada igual o superior a la necesaria";
	else instalalibnss3tools=1; wget http://actualizaciones.cofpo.org/tl_files/01.NT/Pablo/Autofirma1-6-5/libnss3-tools_2-3a3.28.4-0ubuntu0.16.04.4_i386.deb; logprint "Versión de libnss3-tools instalada inferior a la necesaria se descarga";
fi


#Compara la version instalada de Autofirma con la 1.6.5, si es menos se instalará la 1.6.5
logprint "Se compara la versión instalada de Autofirma"

verautofirma=$(dpkg -s AutoFirma | grep "Version")
ver4=$(echo ${verautofirma:9:6})

logprint "Versión de Autofirma necesaria $autofirmanecesario "
logprint "Versión de Autofirma instalada $ver4"


dpkg --compare-versions $ver4 ge $autofirmanecesario 
res4=$(echo $?)

if	[ $res4 -eq 0 ]; then instalaautofirma=0; logprint "Versión de Autofirma instalada igual o superior a la necesaria";
	else instalaautofirma=1; wget http://actualizaciones.cofpo.org/tl_files/01.NT/Pablo/Autofirma1-6-5/AutoFirma_1_6_5.deb; logprint "Versión de AutoFirma instalada inferior a la necesaria se descarga";
fi

#Instala los paquetes necesarios según los resultados obtenidos
if [ $instalalibnspr4 -eq 1 ]; then  logprint "Se instala libnspr4"; dpkg -i libnspr4_4.13.1-0ubuntu0.14.04.1_i386.deb >> $LOGFILE ;  else echo "No es necesario instalar libnspr4"; logprint "No es necesario instalar libnspr4"
fi

if [ $instalalibnss3 -eq 1 ]; then logprint "Se instala libnss3"; dpkg -i libnss3_3.28.4-0ubuntu0.16.04.1_i386.deb >> $LOGFILE;  else echo "No es necesario instalar libnss3"; logprint "No es necesario instalar libnss3"
fi

if [ $instalalibnss3tools -eq 1 ]; then logprint "Se instala libnss3-tools"; dpkg -i libnss3-tools_2-3a3.28.4-0ubuntu0.16.04.4_i386.deb >> $LOGFILE; else echo "No es necesario instalar libnss3-tools"; logprint "No es necesario instalar libnss3-tools"
fi

if [ $instalaautofirma -eq 1 ]; then logprint "Se instala Autofirma 1.6.5"; dpkg -i AutoFirma_1_6_5.deb >> $LOGFILE;  else echo "AutoFirma 1.6.5 o superior ya está instalado en el sistema"; logprint "AutoFirma 1.6.5 o superior ya está instalado en el sistema"
fi


#Elimina los paquetes descargados despues de la instalación
if [ $instalalibnspr4 -eq 1 ]; then rm libnspr4_4.13.1-0ubuntu0.14.04.1_i386.deb; logprint "Se borra el archivo de instalación libnspr4"
fi

if [ $instalalibnss3 -eq 1 ]; then rm libnss3_3.28.4-0ubuntu0.16.04.1_i386.deb; logprint "Se borra el archivo de instalación libnss3"
fi

if [ $instalalibnss3tools -eq 1 ]; then rm libnss3-tools_2-3a3.28.4-0ubuntu0.16.04.4_i386.deb; logprint "Se borra el archivo de instalación libnss3-tools"
fi

if [ $instalaautofirma -eq 1 ]; then rm AutoFirma_1_6_5.deb; logprint "Se borra el archivo de instalación de Autofirma"
fi


echo $ver1
echo $ver2
echo $ver3
echo $ver4

echo $instalalibnspr4
echo $instalalibnss3
echo $instalalibnss3tools
echo $instalaautofirma
