func_ocs()
{
#=======================================================================
# FILE: ~ocs.sh
# USAGE: ./~ocs.sh
# DESCRIPTION: Installation du package ocs et du certificat nécessaire au fonctionnement en https
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: Maxime Tertrais
# COMPANY: Operis
# CREATED: 30/09/2024
# REVISION: ---
#=======================================================================
##Définition des variables

server="https://srv-vrm-ocs-001.operis.champlan/ocsinventory"
basevardir="/var/lib/ocsinventory-agent"
configdir="/etc/ocsinventory-agent"
logfile="/var/log/ocsagent.log"
ca="$configdir/cacert.pem"
folder=$(pwd) ##dossier local
log_erreurs="$folder/err_log.log"

#=======================================================================
##Définition des fonctions
func_dependances(){
	apt-get update
	apt install -y make gcc libmodule-install-perl dmidecode libxml-simple-perl libcompress-zlib-perl openssl libnet-ip-perl libwww-perl libdigest-md5-perl libdata-uuid-perl libcrypt-ssleay-perl libnet-snmp-perl libproc-pid-file-perl libproc-daemon-perl net-tools libsys-syslog-perl pciutils smartmontools read-edid nmap libnet-netmask-perl
}

func_nettoyage(){
	rm -r $basevardir || true
	rm -r $configdir || true
	rm -r $logfile || true
}

func_decompression(){
	tar xvzf "$folder/Ocsinventory-Unix-Agent-2.10.2.tar.gz"
	cd "$folder/Ocsinventory-Unix-Agent-2.10.2"
}

func_installation(){
    read -p "Les poste est déployé dans quel service?" service
	env PERL_AUTOINSTALL=1 perl Makefile.PL && make && make install && perl postinst.pl --server=$server --basevardir=$basevardir --configdir=$configdir --logfile=$logfile --crontab  --tag=$service --ssl=1 --nosoftware=0 --ca=$ca --debug --snmp --nowizard
	mv "$folder/cacert.pem" $configdir
}
#======================================================================= 
##Script

echo "Mise a jour dependances OCS"
	if func_dependances >> /dev/null 2>> $log_erreurs; then
		echo "Mise a jour dependances OCS réussies"
	else
		echo "Erreur lors de la mise a jour dependances OCS"
		echo "logs d'erreurs disponibles dans le fichier: $log_erreurs"
	fi
    sleep 2

echo "nettoyage version precedente de l'agent ocs"
	if func_nettoyage >> /dev/null 2>> $log_erreurs; then
		echo "Nettoyage des versions précédentes OCS réussies"
	else
		echo "Erreur lors du nettoyage des versions précédentes OCS"
		echo "logs d'erreurs disponibles dans le fichier: $log_erreurs"
	fi
    sleep 2

echo "decompression archive de l'Agent"
	if func_decompression >> /dev/null 2>> $log_erreurs; then
		echo "Décompression du package OCS réussies"
	else
		echo "Erreur lors de la décompression du package OCS"
		echo "logs d'erreurs disponibles dans le fichier: $log_erreurs"
	fi
    sleep 2

echo "Installation sans interaction de l'agent"
	if func_installation >> /dev/null 2>> $log_erreurs; then
		echo "Installation du package OCS réussies"
	else
		echo "Erreur lors de l'installation du package OCS"
		echo "logs d'erreurs disponibles dans le fichier: $log_erreurs"
	fi
    sleep 2

echo "test de la connexion au serveur"
	if ocsinventory-agent --server $server >> /dev/null 2>> $log_erreurs;then
		echo "Connexion au serveur OCS réussie"
	else
		echo "Tentative de connexion au serveur OCS échouée"
		echo "logs d'erreurs disponibles dans le fichier: $log_erreurs"
	fi
    sleep 2
}