#! /bin/sh # Recursive cvs add and commit # (c) 2002 Hugo Haas # License: GPL # # http://larve.net/people/hugo/2002/06/rcvsac # # $Id: rcvsac 2553 2005-06-29 14:11:44Z hugo $ cvswrapper() { echo Running cvs with arguments: "$@" cvs "$@" } add() { if [ $1 -eq 1 ]; then CVSOPTIONS="-kb" else CVSOPTIONS="" fi shift if [ "x$*" != "x" ]; then cvswrapper add $CVSOPTIONS $* fi } if [ $# -eq 0 -o $# -gt 2 ]; then echo "Usage: $0 [ comment ]" exit 0 fi DIRS=`find $1 -type d | egrep -v '/CVS$'` for d in $DIRS; do if [ ! -d $d/CVS ]; then cvswrapper add $d else echo "$d already in CVS" fi done for d in $DIRS; do cd $d TOADD="" TOADDKB="" for f in `find . -maxdepth 1 -type f | sed -e 's|^./||' | egrep -v '(^\.?#|~$)'`; do egrep "^/$f/" CVS/Entries > /dev/null if [ $? -ne 0 ]; then echo $f | egrep -i '\.(jpg|png|gif|mov|avi|gz|zip|jar|bz2|ps|pdf|doc|ppt)$' > /dev/null if [ $? -eq 0 ]; then TOADDKB="$TOADDKB $f" else TOADD="$TOADD $f" fi else echo "$d/$f already in CVS" fi done add 0 $TOADD add 1 $TOADDKB cd - done if [ "x$2" != "x" ]; then cvswrapper commit -m "$2" $1 else cvswrapper commit $1 fi