#!/bin/bash
# XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#
#    compare deux version du pack RPC
#    comparaison des sources (.f90 et .pro) et des bash (bash/RPC*)
#
#                         Patrick ROBERT, 2014
#
# XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

# verification du bon nombre d'arguments (nom du path)
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

sed -e "s/.*/cmp & xxx&/" -e "s%xxx$dir1%$dir2%" toto1.tmp > toto3.tmp
sh toto3.tmp 2>&1 | cat > toto4.tmp
sed -e "s%cmp.*/%Dir2 --- %" -e "s%.*/%Les deux %"  toto4.tmp | sort > toto5.tmp
sed -e "s/^I$/ /" -e 's/^/ printf "%s %s %-37s %s %s %s %s %s %s %s\n" /' toto5.tmp > toto6.tmp

nbdiff=`wc -l toto5.tmp | sed "s/toto.*//"`

if test $nbdiff -eq 1
   then 
       echo "--> pas de differences..."
   else
       sh toto6.tmp
fi

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/.*/cmp & xxx&/" -e "s%xxx$dir1%$dir2%" toto7.tmp > toto9.tmp
sh toto9.tmp 2>&1 | cat > toto10.tmp 
echo "I" >> toto10.tmp
sed -e "s%cmp.*/%Dir2 --- %" -e "s%.*/%Les deux %"  toto10.tmp | sort > toto11.tmp
sed -e "s/^I$/ /" -e 's/^/ printf "%s %s %-37s %s %s %s %s %s %s %s\n" /' toto11.tmp > toto12.tmp

nbdiff=`wc -l toto11.tmp | sed "s/toto.*//"`

if test $nbdiff -eq 1
   then 
       echo "--> pas de differences..."
   else
       sh toto12.tmp
fi

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/.*/cmp & xxx&/" -e "s%xxx$dir1%$dir2%" toto7.tmp > toto9.tmp
sh toto9.tmp 2>&1 | cat > toto10.tmp 
echo "I" >> toto10.tmp
sed -e "s%cmp.*/%Dir2 --- %" -e "s%.*/%Les deux %"  toto10.tmp | sort > toto11.tmp
sed -e "s/^I$/ /" -e 's/^/ printf "%s %s %-37s %s %s %s %s %s %s %s\n" /' toto11.tmp > toto12.tmp

nbdiff=`wc -l toto11.tmp | sed "s/toto.*//"`
echo "nbdiff= $nbdiff"
if test $nbdiff -eq 1
   then 
       echo "--> pas de differences..."
   else
       sh toto12.tmp
fi


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/.*/cmp & xxx&/" -e "s%xxx$dir1%$dir2%" toto5.tmp > toto9.tmp
sh toto9.tmp 2>&1 | cat > toto10.tmp 
echo "I" >> toto10.tmp
sed -e "s%cmp.*/%Dir2 --- %" -e "s%.*/%Les deux %"  toto10.tmp | sort > toto11.tmp
sed -e "s/^I$/ /" -e 's/^/ printf "%s %s %-37s %s %s %s %s %s %s %s\n" /' toto11.tmp > toto12.tmp

nbdiff=`wc -l toto11.tmp | sed "s/toto.*//"`

if test $nbdiff -eq 1
   then 
       echo "--> pas de differences..."
   else
       sh toto12.tmp
fi

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 " ==================================================================="

