#!/bin/bash
#Variables
EDITOR=nano
PASSWD=/etc/passwd
RED='\033[0;41;30m'
STD='\033[0;0;39m'

apiversionnecesario=1.5.8.7
libbit4xpkinecesario=1.4.10-582
autofirmanecesario=1.6.5

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

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


#Funcion comprobar versiones

testver (){
#Se comprueba si existe el servicio api
existeservicio=$(service --status-all | grep api)
existeservicioapi=$(echo ${existeservicio:6:9})
#Comprobamos si existe la carpeta del api Ver y si existe el servicio Api, 
if [ -d /opt/eReceita/api/ ]; then apiversionactual=$(sed -n '1p' /opt/eReceita/api/conf/API_VERSION.TXT); logprint "Existe la carpeta del api con la versión $apiversionactual"; else apiversionactual=0; logprint "No existe la carpeta del api";
fi

if [ $existeservicioapi = api ]; then logprint "Existe el servicio api"
fi
#Compara la version instalada de libbit4xpki
logprint "Se compara la versión instalada de libbit4xpki"

existelibbit4xpki=$(dpkg --get-selections | grep libbit4xpki)
existelibbit4xpkiinstall=$(echo ${existelibbit4xpki:16:10})

if [ $existelibbit4xpkiinstall = "install" ]; then verlibbit4xpkiinstall=$(dpkg -s libbit4xpki | grep "Version"); ver12=$(echo ${verlibbit4xpkiinstall:9:10}); else ver12=0;
fi

logprint "Versión de libbit4xpki necesaria $libbit4xpkinecesario"
logprint "Versión de libbit4xpki instalada $ver12"
#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"
}


#Funcionas definidas
pause(){
	read -p "Press [Enter] key to continue..." fackEnterKey
}

one() {
	echo  "one() called"
	/bin/bash /opt/cofpo/instalador/instalaapiv1.5.8.7.sh
		pause
}

two() {
	echo "two() called"
	/bin/bash /opt/cofpo/instalador/bit4id582.sh
		pause
}

three () {
	echo "three() called"
	/bin/bash /opt/cofpo/instalador/Autofirma165.sh
		pause
}

four () {
	echo "four() called"
	/bin/bash /opt/cofpo/instalador/instalaapiv1.5.8.7.sh
	/bin/bash /opt/cofpo/instalador/bit4id582.sh
	/bin/bash /opt/cofpo/instalador/Autofirma165.sh
		pause
}

#Funcion muestra menus
show_menus() {
clear
echo "---------------------         ----------------------         ---------------------"
echo "      MENU-COFPO              VERSIÓN DEL INSTALADOR         VERSIÓN EN EL SISTEMA"
echo "---------------------         ----------------------         ---------------------"
echo "1. Instala api                "$apiversionnecesario"                        "$apiversionactual
echo "2. Instala bit4id             "$libbit4xpkinecesario"                     "$ver12
echo "3. Instala autofirma          "$autofirmanecesario"                          "$ver4
echo "4. Instala todo"
echo "5. Salir"
}

# Lee la opción del teclado y la ejecuta.
read_options() {
	local choice
	read -p "Selecciona opción [ 1 - 5] " choice
	case $choice in
		1) one ; testver;;
		2) two ; testver;;
		3) three; testver;;
		4) four; testver;;
		5) exit 0;;
		*) echo -e "${RED}Error...${STD}" && sleep 2
	esac
	}
	
#Trap CRTL+C, CTRL+Z, and quit singles
trap '' SIGINT SIGQUIT SIGTSTP

#infinite loop
while true
do

show_menus
read_options
done








