X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2Fsvn-keywords.sh;h=caa4cb94026dab76fd388b90dd20d1767aa51fe6;hb=a8aa1baef6f4d1df60f44d1d542912acff913226;hp=851875640368a14de3c15497141ab21e2c4c51cd;hpb=88c5f93f94754e2db902baa85748b2b61ab138a2;p=infrastructure.git diff --git a/scripts/svn-keywords.sh b/scripts/svn-keywords.sh index 8518756..caa4cb9 100755 --- a/scripts/svn-keywords.sh +++ b/scripts/svn-keywords.sh @@ -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