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