reviewed svn-keywords for taking list of dirs - found new hit in scritps/dump-db...
authorthierry <thierry@41d37cc5-eb28-0410-a9bf-d37491348ade>
Tue, 20 Mar 2007 12:31:31 +0000 (12:31 +0000)
committerthierry <thierry@41d37cc5-eb28-0410-a9bf-d37491348ade>
Tue, 20 Mar 2007 12:31:31 +0000 (12:31 +0000)
scripts/svn-keywords.sh

index 740a2a3..036e7fa 100755 (executable)
@@ -6,42 +6,72 @@ COMMAND=$(basename $0)
 
 usage () {
 
-   echo "Usage: $COMMAND keywords"
+   echo "Usage: $COMMAND keywords -- directories"
    exit 1
 
 }
 
 [[ -z "$@" ]] && usage
-keywords="$@"
 
-for keyword in $keywords ; do
+mode=keywords
 
-  echo -n "Gathering files under subversion containing the keyword $keyword "
-  files=$(grep -l '$'"$keyword" $(svn list -R))
-  echo Done
+while [[ "$@" ]] ; do
 
-  for file in $files ; do
+  case "$1" in
+    --)
+      mode=dirs ; shift ;;
+    *)
+      case $mode in
+       keywords)
+         keywords="$keywords $1" ; shift ;;
+       dirs)
+         dirs="$dirs $1" ; shift ;;
+       *)
+         usage ;;
+      esac
+      ;;
+  esac
+done
+  
+if [ "$mode" == keywords -o -z "$dirs" -o -z "$keywords" ] ; then
+  usage
+fi
+
+here=$(pwd -P)
+
+for dir in $dirs; do
+
+  cd $here
+  cd $dir
+
+  echo "xxxxxxxxxxxxxxxxxxxx Working in $(pwd)"
 
-    echo -n "$file "
+  for keyword in $keywords ; do
 
-    if [ ! -f $file ] ; then
-      echo "NOT FOUND - skipped"
-      continue
-    fi
+    echo -n "xxxxxxxxxx Gathering files under subversion containing the keyword $keyword "
+    files=$(grep -l '$'"$keyword" $(svn list -R))
+    echo Done
     
-    current_keywords=$(svn propget svn:keywords $file)
-    has_keyword=$(echo $current_keywords | grep $keyword)
-
-# dbg
-#    echo ck=$current_keywords -- hk=$has_keyword
-#    continue
-
-    if [ -z $has_keyword ] ; then
-      echo "+$keyword"
-      svn propset svn:keywords "$current_keywords $keyword" $file
-    else
-      echo "="
-    fi
+    for file in $files ; do
+
+      echo -n "$dir/$file "
+
+      if [ ! -f $file ] ; then
+       echo "NOT FOUND - skipped"
+       continue
+      fi
+    
+      current_keywords=$(svn propget svn:keywords $file)
+      has_keyword=$(echo $current_keywords | grep $keyword)
+
+      if [ -z "$has_keyword" ] ; then
+       echo "+$keyword"
+       svn propset svn:keywords "$current_keywords $keyword" $file
+      else
+       echo "="
+      fi
+    done
+
   done
 
 done