turn off f24 build
[infrastructure.git] / scripts / svn-keywords.sh
index 8518756..caa4cb9 100755 (executable)
@@ -1,6 +1,4 @@
 #!/bin/bash
-# $Id$
-# $URL$
 
 COMMAND=$(basename $0)
 
@@ -38,6 +36,7 @@ if [ "$mode" == keywords -o -z "$dirs" -o -z "$keywords" ] ; then
 fi
 
 function run_keyword_on_file () {
+    keyword=$1; shift
     file=$1; shift
     echo -n "$file "
     if [ ! -f $file ] ; then
@@ -62,22 +61,33 @@ function run_keywords () {
            cd $dir
            echo "xxxxxxxxxxxxxxxxxxxx Fixing keywords props in $(pwd)"
            echo -n "xxxxxxxxxx Gathering files under subversion "
-           svnfiles=$(svn list -R)
-           echo $(ls -1 $svnfiles | wc -l) files found
+           svnfiles=$(svn list -R | grep -v '/$')
            
+           # handle this, as otherwise grep hangs on stdin
+           if [ -z "$svnfiles" ] ; then
+               echo "xxxxx Nothing applicable in $dir - skipping"
+               continue
+           fi
+               
+           echo $(ls -1 $svnfiles | wc -l) files found
+
            for keyword in $keywords ; do
                
                files=$(grep -l '$'"$keyword" $svnfiles)
+               if [ -z "$files" ] ; then
+                   echo "xxxxx No file found with \$$keyword"
+                   continue
+               fi
                nbfiles=$(ls -1 $files | wc -l)
-               echo Found $nbfiles with \$$keyword
+               echo "xxxxx Found" $nbfiles "with \$$keyword"
            
                for file in $files ; do
-                   run_keywords_on_file $file
+                   run_keyword_on_file $keyword $file
                done
            done
        else 
            for keyword in $keywords ; do
-               run_keyword_on_file $dir
+               grep '$'"$keyword" $dir > /dev/null && run_keyword_on_file $keyword $dir
            done
        fi
     done
@@ -88,7 +98,10 @@ function run_keywords () {
 function run_normalize_on_files () {
     for keyword in $keywords ; do
        echo "Deflating \$$keyword on $# files"
-       sed -i -e 's,$'"$keyword"'.*\$,\$'"$keyword"'$,' "$@"
+       for file in "$@" ; do
+           sed -e 's,$'"$keyword"'.*\$,\$'"$keyword"'$,' $file > $file.new
+           mv $file.new $file
+       done
     done
 }    
 
@@ -97,7 +110,7 @@ function run_normalize () {
        cd $here
        if [ -d $dir ] ; then
            cd $dir
-           echo "xxxxxxxxxxxxxxxxxxxx Normalizing keywords $keywords in $dir(pwd) "
+           echo "xxxxxxxxxxxxxxxxxxxx Normalizing keywords $keywords in $(pwd) "
            echo -n "xxxxxxxxxx Gathering actual files under subversion "
            svnfiles=$(svn list -R)
 
@@ -109,7 +122,7 @@ function run_normalize () {
                fi
            done
            echo $(ls -1 $files |wc -l) files found
-           run_normalize_on_files$files
+           run_normalize_on_files $files
            echo Done
        else
            run_normalize_on_files $dir