#!/bin/bash

echo Verification des outils necessaires :

for app in which pdflatex zenity lpr
do
	echo -n "$app... "
	if path="$(which $app)"
	then
		echo "$path"
	else
		echo "ERREUR : Vous devez installer $app"
		exit 1
	fi
done

for file in tests/*
do
	if ! latex -halt-on-error $file 2>&1 >/dev/null
	then
		echo ERREUR : Installez ${file#*/}
	else
		echo ${file#*/} installé correctement, suppression des fichiers temporaires
		rm ${file#*/}.*
	fi
done

function help
{
	echo
	exit
}

while getopts "e:h-:" opt
do
	case $opt in
		e) EDITOR="$OPTARG" ;;
		h) help ;;
		-) echo "--$OPTARG non implémenté" ;;
	esac
done

#if [ -z "$EDITOR" ]
#then
#	echo "ERREUR : Variable d'environnement \$EDITOR vide ! Essayez $0 -e <éditeur>"
#	exit 1
#fi

mkdir -f ~/.candidatures.sh

echo "Création du fichier d'adresses..."
echo "Pour stopper la saisie, rentez un nom vide"
while :
do
	read -p "Entreprise : " entreprise
	if [ -z "$entreprise" ]
	then
		break
	fi
	read -p "numero, rue : " addr1
	read -p "code postal VILLE : " addr2
	echo "$entreprise\\\\$addr1\\\\$addr2" >> ~/.candidatures.sh/liste_adresses.txt
done

zenity --info --text="Selectionnez votre modèle lettre LaTeX en utilisant les balises du package 'lettre' (http://www.tuteurs.ens.fr/logiciels/latex/lettre.html) et en remplaçant le destinaire par '%%destinataire%%'"
template="$(zenity --file-selection)"

if ! grep '%%destinataire%%' "$template" > /dev/null
then
	echo ERREUR : Votre template ne contient pas %%destinataire%% !!!
	exit 1
fi

(
	total=$(wc ~/.candidatures.sh/liste_adresses.txt -l | cut -f 1 -d ' ')
	init=0
	cat ~/.candidatures.sh/liste_adresses.txt | while read adresse
	do
		sed "s/%%destinataire%%/$(echo $adresse|sed 's/\\/\\\\\\\\/g')/" "$template" > "$HOME/.candidatures.sh/Lettre-$(echo $adresse | sed 's/\\.*//').tex"
		init=$(( $init + 1 ))
		echo $(( $init * 100 / $total ))
	done
	) | zenity --progress --text="Préparation des Lettres... Etape 1 : generation des fichiers LaTeX... Veuillez patienter" --auto-close

cd ~/.candidatures.sh
(
	total=$(wc ~/.candidatures.sh/liste_adresses.txt -l | cut -f 1 -d ' ')
	init=0
	for file in Lettre-*.tex
	do
		pdflatex "$file" > /dev/null
		init=$(( $init + 1 ))
		echo $(( $init * 100 / $total ))
	done
) | zenity --progress --text="Préparation des Lettres... Etape 2 : compilation des fichiers PDF... Veuillez patienter" --auto-close
cd - > /dev/null

zenity --info --text="Les lettres ont ete generees dans ~/.candidatures.sh/.
Vous devriez en vérifier au moins une avec un visionneur PDF"

#read -p "Voulez-vous imprimez chaque lettre avec une copie de votre CV ? (O/n)  "
#case $REPLY in
if ! zenity --question --text="Voulez-vous imprimez chaque lettre ainsi qu'une copie de votre CV ?"
then
	exit 0
fi

zenity --info --text="Selectionnez votre CV (format directement imprimable)"
cv="$(zenity --file-selection)"

(
	total=$(wc ~/.candidatures.sh/liste_adresses.txt -l | cut -f 1 -d ' ')
	init=0
	for file in $HOME/.candidatures.sh/Lettre-*.pdf
	do
		lpr "$file" >&2
		lpr "$cv" >&2
		init=$(( $init + 1 ))
		echo $(( $init * 100 / $total ))
	done
) | zenity --progress --text="Envoi des fichiers dans la file d'impression" --auto-close

rm $HOME/.candidatures.sh/Lettre-*

#read -p "Supprimer le fichier d'adresses ? (o/N)  "
#case $REPLY in
#	o|O) rm ~/.candidatures.sh/liste_adresses.txt ;;
#	*) ;;
#esac
if zenity --question --text="Supprimer le fichier d'adresses ?"
then
	rm ~/.candidatures.sh/liste_adresses.txt
fi
