#!/bin/bash
#author:Cristiano Siqueira
#descricao:Automatiza a instalação do TEF da SkyTEF no caixa.
#Revisao:

confirmapdvconfig(){
	echo "╔═════════════════════════════════════════════════════════════════════╗"
	echo "║ Existe algo errado na configuração do TEF no arquivo pdvconfig.cfg? ║"
	echo "║                 Digite 's' para SIM ou 'n' para NÃO.                ║"
	echo "╚═════════════════════════════════════════════════════════════════════╝"
	read -p "R: " pdvconfig
	echo " "
	case "$pdvconfig" in s )
        echo "╔═════════════════╗"
		echo "║ Corrija o erro! ║"
		echo "╚═════════════════╝"
		sleep 3
		vi /usr/local/sigpdv/pdvconfig.cfg
		confirmapdvconfig
	;; n )
        echo "╔════════╗"
		echo "║ SALVO! ║"
		echo "╚════════╝"
	;; * )
        echo "╔════════════════════════════════════════════════════╗"
		echo "║ Opção errada. Digite 's' para SIM ou 'n' para NÃO. ║"
		echo "╚════════════════════════════════════════════════════╝"
		confirmapdvconfig
	;;
	esac
}


user=`whoami`
if [[ $user == "root" ]];then

	if [[ -e /usr/local/sigpdv/pdvconfig.cfg ]];then
		echo "╔═══════════════════════════════════╗"
		echo "║ Aquivo pdvconfig.cfg encontrado!! ║"
		echo "╚═══════════════════════════════════╝"
		sleep 3
	else
		clear
		echo "╔══════════════════════════════════════════════╗"
		echo "║ O frente parece não estar instalado, pois    ║"
		echo "║ não foi encontrado a arquivo pdvconfig.cfg.  ║"
		echo "╚══════════════════════════════════════════════╝"
		exit
	fi

	echo "╔═══════════════════════════════════════╗"
	echo "║ Iniciando instalação do TEF no caixa. ║"
	echo "╚═══════════════════════════════════════╝"
	sleep 3
	apt update
	echo "╔══════════════════╗"
	echo "║ Instalando CURL. ║"
	echo "╚══════════════════╝"
	sleep 2
	apt -y install curl nmap bc netcat
	echo "╔════════════════════════════════════════════╗"
	echo "║ Liberando pacotes para prevenção de erros. ║"
	echo "╚════════════════════════════════════════════╝"
	sleep 2
	apt-mark unhold python-sqlalchemy
	apt-mark unhold python-sqlalchemy-doc
	apt-mark unhold python-sqlalchemy-ext
	apt-mark unhold python-elixir
	apt-mark unhold python-serial
	echo "╔══════════════════════════════════════╗"
	echo "║ Baixando arquivos para a instalação. ║"
	echo "╚══════════════════════════════════════╝"
	sleep 2
	cd /tmp
	mkdir install_tef/

	if [ -e /home/caixa ];then
		chown caixa:caixa install_tef/ -R
	else
		chown sig:sig insall_tef/ -R
	fi

	chmod 777 install_tef/ -R
	cd /tmp/install_tef/
	wget http://download.sigsolucoes.net.br/produtos/crss/TEF_ATT/install.sh
	wget http://download.sigsolucoes.net.br/produtos/crss/TEF_ATT/libs_tef_7.0_att.zip
	chmod 777 /tmp/install_tef/ -R
	echo "╔═══════════════════════╗"
	echo "║ Copiando bibliotecas. ║"
	echo "╚═══════════════════════╝"
	sleep 2

	echo "╔══════════════════════════════════════════════════════════════════════╗"
	ls -lha /usr/local/sigpdv/sigtef/
	rm -rf /usr/local/sigpdv/sigtef/lib
	echo "╠══════════════════════════════════════════════════════════════════════╣"

	sleep 2
	echo "╠══════════════════════════════════════════════════════════════════════╣"
	ls -lha /usr/local/sigpdv/sigtef/lib_x86_64/lib_ssl_antiga
	echo "╠══════════════════════════════════════════════════════════════════════╣"
	sleep 3

	unzip libs_tef_7.0_att.zip
	cp -r lib /usr/local/sigpdv/sigtef/

	if [[ -e /usr/local/sugpdv/sigtef/lib_x86_64/lib_ssl_antiga/libclisitef64.so ]];then
		echo "╔═══════════════════════════════════╗"
		echo "║ Bibliotecas copiadas com sucesso! ║"
		echo "╚═══════════════════════════════════╝"
		cat /usr/local/sugpdv/sigtef/lib_x86_64/lib_ssl_antiga/RELEASE.TXT
	fi
	sleep 3

	echo "╠══════════════════════════════════════════════════════════════════════╣"
	ls -lha /usr/local/sigpdv/sigtef/lib_x86_64/lib_ssl_antiga
	echo "╚══════════════════════════════════════════════════════════════════════╝"
	echo " "
	echo " "
	echo "╔═══════════════════════════════════════════════════════════╗"
	echo "║ Será necessário usar a key do TEF para registrar o caixa. ║"
	echo "║    Copie a key da SkyTef para poder registrar o caixa.    ║"
    echo "╚═══════════════════════════════════════════════════════════╝"
	sleep 4

    echo "╔═══════════════════════════════════════════════════════════════╗"
	echo "║ Iniciando atualização do TEF e processo de registro do caixa. ║"
    echo "╚═══════════════════════════════════════════════════════════════╝"
	chown sig:sig install.sh
	chmod 777 install.sh

	./install.sh -i #Executa o arquivo de instalação do TEF 2.1.3

    echo "╔════════════════════════╗"
	echo "║ Digite a Key do caixa! ║"
    echo "╚════════════════════════╝"
	read -p "(Ex.: 1893C491) R: " keypdv
	wnbmonitor -k $keypdv

	sleep 3
	echo "╔══════════════════════════════════════╗"
	echo "║ Habilitando e Inicializando Serviços ║"
	echo "╚══════════════════════════════════════╝"
	sleep 2
	systemctl enable wnbmonitor
	systemctl enable wnbtlscli
	systemctl start wnbmonitor
	systemctl start wnbtlscli
	service wnbmonitor start
	service wnbtlscli start

	sleep 3
	echo "╔══════════════════════════════════════╗"
	echo "║ Verificando se Serviços estão ativos ║"
	echo "╚══════════════════════════════════════╝"
	sleep 2
	systemctl status wnbmonitor
	systemctl status wnbtlscli

	echo "╔═══════════════════════════════╗"
	echo "║ Verificando conexão com a VPN ║"
	echo "╚═══════════════════════════════╝"
	sleep 2
	netstat -na | grep 4096
	sleep 3

	echo "╔═════════════════════════════════════════╗"
	echo "║ Fechando pacotes abertos anteriormente. ║"
	echo "╚═════════════════════════════════════════╝"
	sleep 2
	apt-mark hold python-sqlalchemy
	apt-mark hold python-sqlalchemy-doc
	apt-mark hold python-sqlalchemy-ext
	apt-mark hold python-elixir
	apt-mark hold python-serial

	echo " "
	echo " "
	echo " "
    echo "╔═══════════════════════════════════════════════════════════════════════╗"
	echo "║ Configure o (pdvconfig.cfg) com o numero da loja e o IP 127.0.0.1.    ║"
	echo "║ Siga o Exemplo a baixo:                                               ║"
	echo "║                                                                       ║"
	echo "║ [Tef]                                                                 ║"
	echo "║ empresa = 00017542                                                    ║"
	echo "║ qtdvias = 2                                                           ║"
	echo "║ servidor = 127.0.0.1                                                  ║"
	echo "║                                                                       ║"
	echo "║ Não se esqueça de verificar se o Pinpad está comunicando normalmente. ║"
	echo "╚═══════════════════════════════════════════════════════════════════════╝"
	echo " "
	echo " "
	echo " "
	sleep 6
	echo "         = = Abrindo arquivo (pdvconfig.cfg) para ser alterado. = = "
	sleep 3
	vi /usr/local/sigpdv/pdvconfig.cfg
	clear
	echo "╔═════════════════════════════════════════════╗"
	echo "║ Confirmando dados salvos no (pdvconfig.cfg) ║"
	echo "╚═════════════════════════════════════════════╝"
	echo " "
#	cat -n /usr/local/sigpdv/pdvconfig.cfg | grep -n ^ | grep ^192: | cut -d: -f2
#	cat -n /usr/local/sigpdv/pdvconfig.cfg | grep -n ^ | grep ^191: | cut -d: -f2
#	cat -n /usr/local/sigpdv/pdvconfig.cfg | grep -n ^ | grep ^190: | cut -d: -f2
	echo "[Tef]"
	cat -n /usr/local/sigpdv/pdvconfig.cfg | grep empresa
	cat -n /usr/local/sigpdv/pdvconfig.cfg | grep qtdvias
	cat -n /usr/local/sigpdv/pdvconfig.cfg | grep servidor\ =\ 127.0.0.1

	confirmapdvconfig

	echo " "
	echo " "
	echo "            = = Abra o Frente e envie a carga forçada para o Pinpad. = = "
	echo " "
	echo " "
	echo "                             ╔══════════════════════╗"
	echo "                             ║ INSTALAÇÃO CONCLUIDA ║"
	echo "                             ╚══════════════════════╝"
	exit

else
	clear
	echo " "
    echo "╔══════════════════════════════════════════════╗"
    echo "║ Execute este aplicatvo como Root, por favor. ║"
    echo "╚══════════════════════════════════════════════╝"
    exit
fi
