#! /bin/sh

# script < nettoie > pour supprimer les fichiers *.aux, *.log
# dans tous les rpertoires sous le rpertoire \root\latexdoc
# ce que l'on modifiera sans peine si besoin
#
# Yvon Henel le 1er novembre 2000 (2000/11/01)
#
# modification du 05/11/2000 : compteur pour les niveaux dans l'arborescence.
# nettoie jusqu'au 3e niveau de sous-rpertoires

compte=1
faire="o"
# fin de l'initialisation des paramtres internes
# traitement de la ligne de commande
# reconnait : rien => effacement de *.log & *.aux
#                d => effacement de *.log & *.aux & *.dvi
#                p => effacement de *.log & *.aux & *.ps
#                T => effacement de *.log & *.aux & *.dvi & *~

if [ $# -eq 0 ]
    then
    param="r"
    else
    if [ $1 = "d" ]; then
	echo "J'efface les *.dvi !"
	param="dvi"
    elif [ $1 = "p" ]; then
	echo "J'efface les *.ps  !"
	param="ps"
    elif [ $1 = "tilde" ]; then
	echo "J'efface les *.*~ !"
	param="tilde"
    elif [ $1 = "T" ]; then
	echo "J'efface les *.dvi !"
	printf "%s" "D'accord ? o/n : "
	read faire
	if [ $faire = "o" ]; then
	    param="tout"
	    else
	    param="z"
	fi
    else 
	echo "Paramtre inconnu"
	param="z"
    fi
fi

# On ne nettoye que si < param > est diffrent de "z".

if [ $param != "z" ]; then
# cd latexdoc
date > /home/yvon/nettoie.txt
time >> /home/yvon/nettoie.txt

# dfinition de la fonction < nettoyer > qui s'appelle rcursivement sur les sous-rpertoires
# avec controle par < compte >.

nettoyer(){

# on rcupre les noms de fichiers dans le rapport < nettoie.txt >

ls -l *.log >>/home/yvon/nettoie.txt 2> /dev/null
ls -l *.aux >>/home/yvon/nettoie.txt 2> /dev/null
if [ $param = "d" ]; then
    ls -l *.dvi >>/home/yvon/nettoie.txt  2> /dev/null
fi
if [ $param = "ps" ]; then
    ls -l *.ps  >>/home/yvon/nettoie.txt  2> /dev/null
fi
if [ $param = "tilde" ]; then
    ls -l *.*~  >>/home/yvon/nettoie.txt  2> /dev/null
fi
if [ $param = "tout" ]; then
    ls -l *.dvi >>/home/yvon/nettoie.txt  2> /dev/null
fi
# suivant le paramtre < param > on efface les *.log, *.aux, [*.dvi], [*.ps]
rm *.log  2> /dev/null
rm *.aux  2> /dev/null
if [ $param = "d" ]; then
    rm *.dvi  2> /dev/null
fi
if [ $param = "ps" ]; then
    rm *.dvi  2> /dev/null
fi
if [ $param = "tilde" ]; then
    rm *.*~  2> /dev/null
fi
if [ $param = "tout" ]; then
    rm *.dvi  2> /dev/null
    rm *.*~   2> /dev/null
fi
# on lit les fichiers du rpertoire et on descend si on rcupre un sous-rpertoire
for fichier in *
do
  if [ -d $fichier ]; then
    echo "Dans rpertoire $fichier"  >> /home/yvon/nettoie.txt
    cd $fichier
    compte=$(($compte+1))
    echo "Le compte vaut $compte"  >> /home/yvon/nettoie.txt
	if [ $compte -le 4 ]
	then
	nettoyer
	fi
    cd ..
    compte=$(($compte-1))
  fi
done
}
# fin de  la fonction
#
# Dbut du programme principal si on n'a pas < param = "z" >
echo "Je commence ! Patientez"
nettoyer
time >> /home/yvon/nettoie.txt
echo "J'ai fini ! Au-revoir."
else
echo "Je me saborde ! ADIEU MONDE CRUEL !!!"
fi
# fin du script


