# !/bin/bash
# Arquivo de configuração WPS_LPR

###########################################################################################################################################################
clear
echo "Seja bem vindo a instalacao do sistema WPS_LPR"
sleep 5
clear
###########################################################################################################################################################

###########################################################################################################################################################
echo "Criacao de pasta instalacoes, para download dos pacotes necessarios"
sleep 3
mkdir -p /instalacoes
mkdir -p /var/log/WPS_Lpr/
mount -o remount,size=5G /tmp/
sed -i 's/tmpfs  size=512m/tmpfs  size=5g/' /etc/fstab
###########################################################################################################################################################

###########################################################################################################################################################
echo "Instalacao do repositorio WPSBrasil"
sleep 2
yum install https://repowpscentos.parkingplus.com.br/base/Packages/wget-1.14-18.el7_6.1.x86_64.rpm -y
cd /etc/yum.repos.d/
rm -rvf /etc/yum.repos.d/*
wget https://repowpscentos.parkingplus.com.br/arquivos-lpr/WPSCentOSrepo-2.repo
yum clean all

cd /instalacoes

###########################################################################################################################################################

###########################################################################################################################################################
echo "Instalacao de pacotes necessarios"
sleep 2
yum install -y wget nano mosquitto supervisor python3 python3-devel gcc unzip ntpdate vim mlocate \
java-1.8.0-openjdk default-jdk pciutils xorg-x11-drv-dummy.x86_64 git

echo "export PATH="/usr/local/bin:$PATH"" >> ~/.bashrc
source ~/.bashrc

yum install libjpeg-turbo-official -y
erlang="`rpm -qa | grep erlang`"
rabbitmq="`rpm -qa | grep rabbitmq`"
if [ -z $erlang ];
	then

		yum -y install esl-erlang
fi
if [ -z $rabbitmq ];
	then

		yum -y install rabbitmq-server
		systemctl start rabbitmq-server.service
fi
###########################################################################################################################################################

###########################################################################################################################################################
clear
echo "Instalacao do Driver Nvidia"
sleep 2
gpu="`lspci | grep NVIDIA`"
if echo $gpu | egrep "VGA"
        then
            yum -y install nvidia-detect
			yum install -y kmod-nvidia
			yum remove -y xorg-x11-drivers xorg-x11-drv-nouveau
        else
            echo -e " \033[0;33m Maquina sem GPU \033[0m"
			sleep 5
fi
###########################################################################################################################################################

###########################################################################################################################################################
clear
echo "Instalacao do CUDA Toolkit"
sleep 2
gpu="`lspci | grep NVIDIA`"
if echo $gpu | egrep "VGA"
		then
			cuda="`nvcc --version`"
			if [ -z "$cuda" ];
				then
					wget https://repowpscentos.parkingplus.com.br/arquivos-lpr/CUDA.zip
					unzip CUDA.zip
					echo "Instalando CUDA e CUDnn, Aguarde..."
					bash /instalacoes/CUDA/cuda_11.2.0_460.27.04_linux.run --silent --toolkit --tmpdir=./
					rpm -ivh /instalacoes/CUDA/libcudnn8-8.1.1.33-1.cuda11.2.x86_64.rpm
				else
					echo -e " \033[0;32m CUDA e Cudnn Instalados \033[0m"
			fi
		else
			echo -e " \033[0;33m Maquina sem GPU \033[0m"
			sleep 5
fi
###########################################################################################################################################################

###########################################################################################################################################################
		yum install kernel-devel -y

###########################################################################################################################################################

###########################################################################################################################################################
echo "Instalacao do Pkplus-cli"
sleep 2

pkplus_cli="`pkplus-cli --version`"
if [ ! -z "$pkplus_cli" ];
	then
		echo -e " \033[0;32m Pkplus-cli já instalado \033[0m"
		sleep 3
	else
		pkplus="`find /instalacoes/ParkingPlus_InstallServer*.zip`"
		if echo $pkplus | egrep "ParkingPlus_InstallServer"
			then
				echo -e " \033[0;32m Arquivos encontrados \033[0m"
			else
				echo -e " \033[0;97m Iniciando Download do Pkplus-cli \033[0m"
				wget https://repowpscentos.parkingplus.com.br/arquivos-lpr/ParkingPlus_InstallServer.zip
		fi
		echo -e " \033[0;97m Iniciando instalacão \033[0m"
		unzip ParkingPlus_InstallServer.zip
		yum localinstall -y /instalacoes/ParkingPlus_InstallServer/*.rpm 
	#	pkplus-cli install-server --yes
		pkplus-cli install-server --offline --yes
fi

###########################################################################################################################################################

###########################################################################################################################################################
clear
echo "Instalacao do LPR_WEB_Server_Images"
sleep 2
version_lpr_webserver='7.430.1'
pkplus_lpr_webserver="`pkplus-cli svc list | grep ParkingPlus:LprImagesWebServer: | cut -d ':' -f 3 | cut -d ' ' -f 1`"
if [ "$pkplus_lpr_webserver" != "$version_lpr_webserver" ];
        then
			echo -e " \033[0;97m Iniciando Download do WPS_LPR_WebServer:$version_lpr_webserver \033[0m"
			wget https://repowpscentos.parkingplus.com.br/arquivos-lpr/ParkingPlus-LprImagesWebServer.tgz
			echo -e " \033[0;97m Iniciando Instalacao do Pkplus-cli \033[0m"
			chmod 777 ParkingPlus-LprImagesWebServer*.tgz
			pkplus-cli svc import-file /instalacoes/ParkingPlus-LprImagesWebServer*.tgz
			pkplus-cli svc disable ParkingPlus:LprImagesWebServer:
			pkplus-cli svc enable ParkingPlus:LprImagesWebServer:$version_lpr_webserver
			passwd_web_server="`cat /var/lib/ParkingPlus/LprImagesWebServer/config/basic_auth_users | grep senha`"
			if [ ! -z "$passwd_web_server" ];
				then
					echo "wpsbrasil:wpsbrasil" > /var/lib/ParkingPlus/LprImagesWebServer/config/basic_auth_users
			fi
			pkplus-cli svc reenable ParkingPlus:LprImagesWebServer:$version_lpr_webserver
        else
                echo -e " \033[0;32m WebServer LPR Images instalado na versão $pkplus_lpr_webserver \033[0m"
				sleep 3
fi
###########################################################################################################################################################

###########################################################################################################################################################
clear
echo "Instalacao do Concentrador"
sleep 2
version_concentrator='7.430.1'
wpslprconcentrator_version="`rpm -qa | grep wpslprconcentrator | cut -d '-' -f 2`"
if [ "$wpslprconcentrator_version" != '$version_concentrator' ];
	then
		echo -e " \033[0;97m Iniciando Download do Concentrador $version_concentrator \033[0m"
		systemctl stop WpsLprConcentrator
		rm -rvf /etc/yum.repos.d/Cen*
		yum clean all
		yum install -y wpslprconcentratorservice
		cp /etc/WpsLprConcentrator/wpslprconcentrator.sample.properties /etc/WpsLprConcentrator/wpslprconcentrator.properties
		systemctl start WpsLprConcentrator
	else
		echo -e " \033[0;32m Concentrador já instalacao na versão $version_concentrator \033[0m"
fi

###########################################################################################################################################################

###########################################################################################################################################################
clear
echo "Configuracao do bashrc"
sleep 2
bashrc="`cat ~/.bashrc | grep WPS_LPR`"
if [ -z "$bashrc" ];
	then
		echo "export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" >> ~/.bashrc
		echo "export PATH=/usr/local/cuda-11.2/bin${PATH:+:${PATH}}" >> ~/.bashrc
		echo "PS1='\[\033[1;31m\]\u\[\033[0;32m\]@WPS_LPRFIDELIZADO\[\e[m\] \[\e[1;34m\]\w\[\e[m\] \[\e[1;32m\]\$\[\e[m\] \[\e[1;37m\]'" >> ~/.bashrc
fi
source ~/.bashrc
###########################################################################################################################################################

###########################################################################################################################################################
echo "ajustando o horario da maquina"
ntpdate repowpscentos.parkingplus.com.br
hwclock -w 
###########################################################################################################################################################

###########################################################################################################################################################
#clear
echo "Download do sistema WPS_LPR"
mount -o remount,size=5G /tmp/
sed -i 's/tmpfs  size=512m/tmpfs  size=5g/' /etc/fstab
size_lpr='95276'
sleep 2
mkdir -p /WPSBrasil/
cd /WPSBrasil/
wget https://repowpscentos.parkingplus.com.br/arquivos-lpr/lpr-wps.zip
wget https://repowpscentos.parkingplus.com.br/arquivos-lpr/pip.zip

wps_lpr="`ls -s lpr-wps.zip | cut -d ' ' -f 1`"
if	[ $size_lpr == $wps_lpr ];
	then
		mv lpr-wps lpr-wps_old
		unzip lpr-wps.zip 
		unzip pip.zip
		cd /WPSBrasil/pip/
		pip3 install pip-21.3.1-py3-none-any.whl
		rm pip-21.3.1-py3-none-any.whl
		pip3 uninstall PyTurboJPEG
		pip3 install /WPSBrasil/pip/*.whl 
		pip3 install /WPSBrasil/pip/*.tar.gz
		cd /WPSBrasil/lpr-wps/
		chmod +x /WPSBrasil/lpr-wps/main.sh
	else
		echo -e " \033[0;31m Tamanho incorreto do pacote, verifique se o Download foi efetuado corretamente, e tente novamente \033[0m"
		exit
fi

###########################################################################################################################################################

###########################################################################################################################################################
main_lpr="`cat /etc/supervisord.conf | grep main_lpr`"
if [ -z $main_lpr ];
	then
		sudo cat >> /etc/supervisord.conf << EOF

[program:main_lpr]
directory=/WPSBrasil/lpr-wps
command=sh main.sh
startsecs=0
autorestart=true
user=root
stopasgroup=true
stopsignal=QUIT
stdout_logfile=/var/log/WPS_Lpr/%(program_name)s_out.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=3
stderr_logfile=/var/log/WPS_Lpr/%(program_name)s_error.log
stderr_logfile_maxbytes=5MB
stderr_logfile_backups=1

EOF
fi
###########################################################################################################################################################

###########################################################################################################################################################
clear
echo "Configuracao do MQTT"
sleep 2
touch /instalacoes/mqtt_pass
echo wps:wps@2021 > /instalacoes/mqtt_pass
mosquitto_passwd -U /instalacoes/mqtt_pass
mv /instalacoes/mqtt_pass /etc/mosquitto/passwd
rm -f /etc/mosquitto/mosquitto.conf
touch /etc/mosquitto/mosquitto.conf
echo allow_anonymous false >> /etc/mosquitto/mosquitto.conf
echo listener 1883 0.0.0.0 >> /etc/mosquitto/mosquitto.conf
echo password_file /etc/mosquitto/passwd >> /etc/mosquitto/mosquitto.conf
echo log_type error >> /etc/mosquitto/mosquitto.conf
iptables -I INPUT -j ACCEPT
yum remove firewalld -y
systemctl restart mosquitto
###########################################################################################################################################################

###########################################################################################################################################################
systemctl enable supervisord
systemctl enable rabbitmq-server.service
rabbitmq-plugins enable rabbitmq_management
systemctl enable mosquitto
systemctl enable WpsLprConcentrator
systemctl stop supervisord
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl start_app
systemctl restart supervisord
systemctl daemon-reload
###########################################################################################################################################################

sleep 10
clear
echo -e " \033[0;32mO sistema irá rodar um teste para validar se o sistema esta funcionando \033[0m"
cd /instalacoes
wget https://repowpscentos.parkingplus.com.br/arquivos-lpr/teste_wps_lpr.sh
chmod +x /instalacoes/teste_wps_lpr.sh
/instalacoes/teste_wps_lpr.sh

echo -e "\e[1;33;4;44mConfiguracoes Finalizadas\e[0m"
echo  -e "\033[33;5;7mA máquina será reiniciada para aplicar as configurações, aguarde...\033[0m"
sleep 15
systemctl reboot

