1 | #!/bin/ksh |
---|
2 | # |
---|
3 | # Use this script to test if files are the same in all configurations in this directory. All files in the GENERAL, POST and EXPERIMENTS |
---|
4 | # directories with the same name and path should be the identic before commit to svn. The difference between configurations are the |
---|
5 | # scripts for compiling and which files are available. |
---|
6 | # |
---|
7 | # Syntax |
---|
8 | # To test all files in all configurations : |
---|
9 | # ./diff_configuration.ksh |
---|
10 | # To test the files file1 and file2 in all configurations : |
---|
11 | # ./diff_configuration.ksh file1 file2 |
---|
12 | # |
---|
13 | # Josefine Ghattas IPSL |
---|
14 | |
---|
15 | BaseDir=`pwd` |
---|
16 | ConfigFamily=v6 |
---|
17 | ConfigList=`ls |grep ${ConfigFamily} |grep -v out` |
---|
18 | ConfigList=$ConfigList" IPSLCM6 IPSLCM6CHT" |
---|
19 | verbose=no |
---|
20 | echo All configurations to tests : $ConfigList |
---|
21 | |
---|
22 | if [ $# == 0 ] ; then |
---|
23 | TestAll="yes" |
---|
24 | echo "Test all files." |
---|
25 | else |
---|
26 | TestAll="no" |
---|
27 | FileList0=$* |
---|
28 | echo "Test only following files : $FileList0" |
---|
29 | fi |
---|
30 | |
---|
31 | |
---|
32 | for conf in $ConfigList ; do |
---|
33 | # Construct list of files to test |
---|
34 | if [ $TestAll = "yes" ] ; then |
---|
35 | FileList=`ls -d ${conf}/GENERAL/DRIVER/* ${conf}/GENERAL/PARAM/* ${conf}/GENERAL/POST/* ${conf}/EXPERIMENTS/*/*/* ${conf}/EXPERIMENTS/*/*/*/*` |
---|
36 | else |
---|
37 | FileList="" |
---|
38 | for file in $FileList0 ; do |
---|
39 | FileList=$( echo $FileList `ls ${conf}/GENERAL/*/$file`) |
---|
40 | done |
---|
41 | fi |
---|
42 | |
---|
43 | for conf2 in $ConfigList ; do |
---|
44 | if [ $conf2 != $conf ] ; then |
---|
45 | for file in $FileList ; do |
---|
46 | # Remove conf from path |
---|
47 | file=$( echo $file | awk -F"${conf}/" '{print $2}' ) |
---|
48 | |
---|
49 | # Test if the file exists also in second directory, if yes test difference |
---|
50 | if [ -f ${conf2}/${file} ] ; then |
---|
51 | # Test if files are different |
---|
52 | cmp -s ${conf}/${file} ${conf2}/${file} |
---|
53 | if [ $? -ne 0 ] ; then |
---|
54 | diff --brief ${conf}/${file} ${conf2}/${file} |
---|
55 | if [ $verbose == yes ] ; then |
---|
56 | diff ${conf}/${file} ${conf2}/${file} |
---|
57 | echo |
---|
58 | fi |
---|
59 | fi |
---|
60 | fi |
---|
61 | done |
---|
62 | fi |
---|
63 | done |
---|
64 | |
---|
65 | done |
---|