9 echo "Usage: $COMMAND keywords -- files or directories"
14 [[ -z "$@" ]] && usage
26 keywords="$keywords $1" ; shift ;;
28 dirs="$dirs $1" ; shift ;;
36 if [ "$mode" == keywords -o -z "$dirs" -o -z "$keywords" ] ; then
40 function run_keyword_on_file () {
43 if [ ! -f $file ] ; then
44 echo "NOT FOUND - skipped"
47 current_keywords=$(svn propget svn:keywords $file)
48 has_keyword=$(echo $current_keywords | grep $keyword)
49 if [ -z "$has_keyword" ] ; then
51 svn propset svn:keywords "$current_keywords $keyword" $file
57 # figures what files need to have the svn:keywords set, and adds it when missing
58 function run_keywords () {
63 echo "xxxxxxxxxxxxxxxxxxxx Fixing keywords props in $(pwd)"
64 echo -n "xxxxxxxxxx Gathering files under subversion "
65 svnfiles=$(svn list -R)
66 echo $(ls -1 $svnfiles | wc -l) files found
68 for keyword in $keywords ; do
70 files=$(grep -l '$'"$keyword" $svnfiles)
71 nbfiles=$(ls -1 $files | wc -l)
72 echo Found $nbfiles with \$$keyword
74 for file in $files ; do
75 run_keywords_on_file $file
79 for keyword in $keywords ; do
80 run_keyword_on_file $dir
86 # removes expansion of the specified keywords for diff
87 # useful when comparing with another codebase
88 function run_normalize_on_files () {
89 for keyword in $keywords ; do
90 echo "Deflating \$$keyword on $# files"
91 sed -i -e 's,$'"$keyword"'.*\$,\$'"$keyword"'$,' "$@"
95 function run_normalize () {
100 echo "xxxxxxxxxxxxxxxxxxxx Normalizing keywords $keywords in $dir(pwd) "
101 echo -n "xxxxxxxxxx Gathering actual files under subversion "
102 svnfiles=$(svn list -R)
105 for scan in $svnfiles; do
106 if [ -d $scan ] ; then continue
107 elif [ -L $scan ] ; then continue
108 else files="$files $scan"
111 echo $(ls -1 $files |wc -l) files found
112 run_normalize_on_files$files
115 run_normalize_on_files $dir
128 echo Unsupported command $0 ;;