#!/usr/bin/env zsh

###--------------------------------
### --- ATTENTION : script en zsh
###--------------------------------


#--------------------------------
# ce script necessite un argument :
#    1- executable herezh
#--------------------------------

#
# verif de la presence d un argument
#
if [ ! $1 ] ; then
  echo
  echo "**ERREUR : un argument requis (executable Herezh)"
  echo
  exit
fi

#
# verif de l existence de l executable donne en argument (avec which)
#
a=`which $1 | grep "not found"`
if [ $a ] ; then
  echo
  echo "**ERREUR (prog:$0) : la commande $cmd_herezh est introuvable"
  a=`which $1`
  echo "           Resultat de la commande  \"which $1\" => $a"
  echo
  exit
fi

#
# desormais, l executable donne en argument se trouve dans la variable $cmd_herezh
#
cmd_herezh=$1



#
# verif de la presence du repertoire Rapport
#   > si absent => creation
#   > si existe mais est un fichier => arret avec message d erreur
#
if [ -f ./Rapport ] ; then
  echo
  echo "**ERREUR (prog:$0) : la presence d un repertoire de nom Rapport est necessaire mais il existe deja un fichier de nom Rapport. Veuillez renommer ce fichier, le deplacer dans un autre repertoire ou le supprimer..."
  echo
  exit
elif [ ! -d ./Rapport ] ; then
  mkdir Rapport
fi






#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
# REMARQUE : le repertoire Tests_en_attente_debug/ n est pas pris en compte pour la recherche
#            des tests a lancer (utilisation de l option "-not -path" dans les commandes find
#
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -






####################################
### PROGRAMME POUR TESTS RAPIDES ###
####################################

   ###--------------------------------------------###
   ###--- Changement du nom du fichier rapport ---###
   ###---    des derniers tests effectués      ---###
   ###--------------------------------------------###
mv -f Rapport/rapport_test_R.txt Rapport/rapport_test_R_OLD.txt

   ###---------------------------------------###
   ###--- Génération d'un nouveau rapport ---###
   ###---------------------------------------###
./Perl/genere_rapport.pl Rapport/rapport_test.txt $cmd_herezh

   ###-------------------------------------------------------###
   ###--- Recherche de tous les répertoires /Test_R*      ---###
   ###---    dans le répertoire /Batterie                 ---###
   ###--- Création du fichier Liste_Tests_R.txt contenant ---###
   ###---    le chemin de tous ces répertoires /Test_R*   ---###
   ###-------------------------------------------------------###
mv Rapport/Liste_Tests_R.txt Rapport/Liste_Tests_R_OLD.txt
foreach f (`find . -not -path "*Tests_en_attente_debug*" -name "Test_R*" -type d`)
  echo $f >> Rapport/Liste_Tests_R.txt
end

   ###------------------------------------###
   ###--- Execution de la vérification ---###
   ###---    pour les tests rapides    ---###
   ###------------------------------------###
      #-----------------------------------------------------#
      #- Recherche de tous les répertoires /Test_R*        -#
      #-    dans le répertoire /Batterie                   -#
      #- Execution de "test.pl nom_repertoire type_calcul" -# 
      #-    une fois que l'on est placé au bon endroit     -#
      #-----------------------------------------------------#
foreach  f (`find . -not -path "*Tests_en_attente_debug*" -name "Test_R*" -type d`)
  ./Perl/test.pl $f $cmd_herezh
end

   ###--------------------------------------###
   ###--- Edition du fichier rapport.txt ---###
   ###--------------------------------------###
mv Rapport/rapport_test.txt Rapport/rapport_test_R.txt
nedit Rapport/rapport_test_R.txt &



##################################
### PROGRAMME POUR TESTS LONGS ###
##################################

   ###--------------------------------------------###
   ###--- Changement du nom du fichier rapport ---###
   ###---    des derniers tests effectués      ---###
   ###--------------------------------------------###
mv -f Rapport/rapport_test_L.txt Rapport/rapport_test_L_OLD.txt

   ###---------------------------------------###
   ###--- Génération d'un nouveau rapport ---###
   ###---------------------------------------###
./Perl/genere_rapport.pl Rapport/rapport_test.txt $cmd_herezh

   ###-------------------------------------------------------###
   ###--- Recherche de tous les répertoires /Test_L       ---###
   ###---    dans le répertoire /Batterie                 ---###
   ###--- Création du fichier Liste_Tests_L.txt contenant ---###
   ###---    le chemin de tous ces répertoires /Test_L    ---###
   ###-------------------------------------------------------###
mv Rapport/Liste_Tests_L.txt Rapport/Liste_Tests_L_OLD.txt
foreach f (`find . -not -path "*Tests_en_attente_debug*" -name "Test_L*" -type d`)
  echo $f >> Rapport/Liste_Tests_L.txt
end

   ###------------------------------------###
   ###--- Execution de la vérification ---###
   ###---    pour tous les tests longs ---###
   ###------------------------------------###
      #-----------------------------------------------------#
      #- Recherche de tous les répertoires /Test*          -#
      #-    dans le répertoire /Batterie                   -#
      #- Execution de "test.pl nom_repertoire type_calcul" -# 
      #-    une fois que l'on est placé au bon endroit     -#
      #-----------------------------------------------------#
foreach f (`find . -not -path "*Tests_en_attente_debug*" -name "Test_L*" -type d`)
  ./Perl/test.pl $f $cmd_herezh
end

   ###--------------------------------------###
   ###--- Edition du fichier rapport.txt ---###
   ###--------------------------------------###
mv Rapport/rapport_test.txt Rapport/rapport_test_L.txt
nedit Rapport/rapport_test_L.txt &
