#!/bin/bash

# script lancé via cron avec l'utilisateur passerelle

set -e

grep -q 'DISABLE_CRON_JOBS = True' /etc/passerelle/settings.d/* && exit 0

# configuration
. /etc/publik/clients/thonon-agglomeration/factures-egee.conf

# exemple de fichier de configuration :
#TENANT="passerelle.publik.example.net"
#URL="http://egee.example.net/factures<SUB>.xml"
#CREDENTIALS="user:pass"
#SUBS="-perrignier -autre"

RELOAD=/bin/false

get_factures() {
	SUB=$1
	ARCHIVE=thonon-agglomeration-factures-egee${SUB}.zip
	FILENAME=/var/lib/passerelle/tenants/$TENANT/media/archives/$ARCHIVE
	test -f $FILENAME || return 0

	TMPDIR=$(mktemp -d --suffix .thonon-agglomeration-factures-egee${SUB})
	cd $TMPDIR

	# on recupere le fichier
	GETURL=$(echo $URL | sed "s/<SUB>/${SUB}/")
	curl --silent --user $CREDENTIALS $GETURL --output factures-new.xml

	# on compare avec le contenu du zip actuel : si c'est le même, on arrête ici
	unzip -q $FILENAME factures.xml 2> /dev/null || /bin/true
	if cmp --quiet factures.xml factures-new.xml
	then
		rm factures-new.xml factures.xml
		rmdir $TMPDIR
		return 0
	fi

	# on créé un zip avec le nouveau factures.xml
	mv factures-new.xml factures.xml
	zip --quiet $FILENAME factures.xml
	RELOAD=/bin/true

	rm factures.xml
	rmdir $TMPDIR
	return 0
}

for SUB in "" ${SUBS}
do
	get_factures ${SUB}
done

# on met à jour les données dans les connecteurs passerelle
if $RELOAD
then
	cd /tmp
	passerelle-manage tenant_command update_families_from_zip -d $TENANT
fi

exit 0
