#!/bin/bash
# XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#
#    compare deux version du pack RPC
#    comparaison des sources (.f90 et .pro) et des bash (bash/RPC*)
#    version longue: genere des fichiers.diff a chaque fois
#
#                         Patrick ROBERT, 2014
#
# XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

appli=`basename $0`
appli36=`echo "$appli                                 " | cut -c1-36`
Narg=1

if( (test $# = 1 ) && (test $1 = -h ) ) ; then hh=1 ; else hh=0 ; fi

if test $# != $Narg || test $hh = 1
    then echo "$appli : compare two versions of RPC pack"
        echo "$appli   require 1 arguments, ex :"
        echo "$appli   /NFS/tamaya/data2/staff-op/RPC_V2p0"
        echo " $appli36 : *** ERROR ! Command aborted." >&2
        exit 1
fi

datim1=`date +%F'  '%H':'%M':'%S `
julsec1=`date +%s`

# verification que le path existe

dir1=$RPC_DIR
dir2=$1

if test ! -d $dir2
   then echo "no-existing directory $dir2 "
        echo " $appli36 : *** ERROR ! Command aborted." >&2
        exit 2
fi

echo
echo "repertoires a comparer :"
echo "========================"
echo
echo "dir1= $dir1"
echo "dir2= $dir2"
echo

echo "-------------------"
echo "comparaison des f90"
echo "-------------------"

ls $dir1/src/*.f90 > toto1.tmp
ls $dir2/src/*.f90 > toto2.tmp

echo "nb de sources:"
echo
wc -l toto1.tmp | sed "s/toto.*/ dans Dir1/"
wc -l toto2.tmp | sed "s/toto.*/ dans Dir2/"

echo
echo "comparaison du contenu des .f90 dans src:"
echo

sepa=%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

sed -e "s/.*/echo ; echo $sepa ; echo & ; echo $sepa ; diff -s  & xxx&/" -e "s%xxx$dir1%$dir2%" toto1.tmp > toto3.tmp
# le big sed sert a enlever les paragraphe indiquant des fichiers identiques
sh toto3.tmp 2>&1 | sed -e '/./{H;$!d;}' -e 'x;/Les fichiers/d;' | cat > diff_f90.txt

rm toto*.tmp



echo
echo "--------------------"
echo "comparaison des bash"
echo "--------------------"
echo

ls $dir1/bash/RPC_* > toto5.tmp
ls $dir2/bash/RPC_* > toto6.tmp

sed "/~/d" toto5.tmp > toto7.tmp
sed "/~/d" toto6.tmp > toto8.tmp

echo "nb de bash:"
echo
wc -l toto7.tmp | sed "s/toto.*/ dans Dir1/"
wc -l toto8.tmp | sed "s/toto.*/ dans Dir2/"

echo
echo "comparaison du contenu des RPC_.* dans bash:"
echo

sed -e "s/.*/echo ; echo $sepa ; echo & ; echo $sepa ; diff -s  & xxx&/" -e "s%xxx$dir1%$dir2%" toto7.tmp > toto9.tmp
sh toto9.tmp 2>&1 | sed -e '/./{H;$!d;}' -e 'x;/Les fichiers/d;' | cat > diff_bash.txt

rm toto*.tmp

echo
echo "-------------------"
echo "comparaison des cal"
echo "-------------------"
echo

ls $dir1/gainantset/*.cal > toto5.tmp
ls $dir2/gainantset/*.cal > toto6.tmp

sed "/~/d" toto5.tmp > toto7.tmp
sed "/~/d" toto6.tmp > toto8.tmp

echo "nb de cal:"
echo
wc -l toto7.tmp | sed "s/toto.*/ dans Dir1/"
wc -l toto8.tmp | sed "s/toto.*/ dans Dir2/"

echo
echo "comparaison du contenu des fichiers *.cal dans gainantset:"
echo

sed -e "s/.*/echo ; echo $sepa ; echo & ; echo $sepa ; diff -s  & xxx&/" -e "s%xxx$dir1%$dir2%" toto7.tmp > toto9.tmp
sh toto9.tmp 2>&1 | sed -e '/./{H;$!d;}' -e 'x;/Les fichiers/d;' | cat > diff_cal.txt


echo
echo "--------------------------------"
echo "comparaison des bash et Makefile"
echo "--------------------------------"
echo

ls $dir1/*.bash > toto5.tmp
ls $dir2/*.bash > toto6.tmp

ls $dir1/Makefile >> toto5.tmp
ls $dir2/Makefile >> toto6.tmp

ls $dir1/README.txt >> toto5.tmp
ls $dir2/README.txt >> toto6.tmp

echo "nb de cal:"
echo
wc -l toto5.tmp | sed "s/toto.*/ dans Dir1/"
wc -l toto6.tmp | sed "s/toto.*/ dans Dir2/"

echo
echo "comparaison du contenu des fichiers *.cal dans gainantset:"
echo

sed -e "s/.*/echo ; echo $sepa ; echo & ; echo $sepa ; diff -s  & xxx&/" -e "s%xxx$dir1%$dir2%" toto5.tmp > toto9.tmp
sh toto9.tmp 2>&1 | sed -e '/./{H;$!d;}' -e 'x;/Les fichiers/d;' | cat > diff_make.txt

rm toto*.tmp

echo
echo "comparaison terminee !"
echo "======================"
echo
echo "Done !"

# end of command
# --------------

datim2=`date +%F'  '%H':'%M':'%S `
julsec2=`date +%s`
diff=`expr $julsec2 - $julsec1`

echo ""
echo " Starting time $appli : $datim1"
echo " Ending   time $appli : $datim2"
echo " Duration      $appli : $diff sec."
echo    
echo " $appli36 : NORMAL TERMINATION - time exe= $diff s." >&2 

echo " ==================================================================="
