#!/bin/bash
-# $Id$
-# $URL$
COMMAND=$(basename $0)
fi
function run_keyword_on_file () {
+ keyword=$1; shift
file=$1; shift
echo -n "$file "
if [ ! -f $file ] ; then
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
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
}
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)
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