DragonFly users List (threaded) for 2008-01
DragonFly BSD
DragonFly users List (threaded) for 2008-01
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: cvsup


From: "Simon 'corecode' Schubert" <corecode@xxxxxxxxxxxx>
Date: Sat, 19 Jan 2008 14:25:01 +0100

Vincent Stemen wrote:
Also, if nobody has written one or is working on one, I am considering writing
a script to provide basic cvsup like features/functionality for repository
updates via rsync.

I'm not sure what you mean with that. Isn't calling rsync enough? Maybe people could be interested in my script to download + update various repos. See attached. Maybe you can figure out the file formats yourself :)


cheers
  simon

--
Serve - BSD     +++  RENT this banner advert  +++    ASCII Ribbon   /"\
Work - Mac      +++  space for low €€€ NOW!1  +++      Campaign     \ /
Party Enjoy Relax   |   http://dragonflybsd.org      Against  HTML   \
Dude 2c 2 the max   !   http://golden-apple.biz       Mail + News   / \
#!/bin/sh -e

args=`getopt c:CIs:uv $*`
if [ $? -ne 0 ]
then
	printf "usage: updatecvs -cCIsuv\n" >&2
	exit 1
fi

set -- $args

unset VERBOSE SKIPSUP RECVS

PREFIX=`head -n 1 $HOME/.updatecvsrc`
INDEX=-f
CVSDIR=$PREFIX/cvs
SRCDIR=$PREFIX/src

for i
do
	case $i in
	-c)
		CVSDIR=$2; shift
		shift
		;;
	-C)
		RECVS=yes
		shift
		;;
	-I)
		INDEX=
		shift
		;;
	-s)
		SRCDIR=$2; shift
		shift
		;;
	-u)
		SKIPSUP=yes
		shift
		;;
	-v)
		VERBOSE=yes
		shift
		;;
	--)
		shift
		break
		;;
	esac
done

if [ -n "$VERBOSE" ]
then
	verbose_cvsup="-L 2"
	verbose_cvsync=-v
	verbose_cvs=""
	verbose_glimpse="/dev/stdout"
	verbose_rsync="-v --progress"
else
	verbose_cvsup="-L 0"
	verbose_cvsync=
	verbose_cvs="-Q"
	verbose_glimpse="/dev/null"
	verbose_rsync=
fi

if [ $# -eq 0 ]
then
	repos=`cut -f 1 "$CVSDIR/.cvsrepos"`
	set -- $repos
fi

cat "$CVSDIR/.cvsrepos" | while read name mode file
do
	case "$name" in
	"#"*|"")
		continue
		;;
	esac

	dorepo=0
	for checkrepo
	do
		if [ "$checkrepo" = "$name" ]
		then
			dorepo=1
			break
		fi
	done

	if [ $dorepo -eq 0 ]
	then
		continue
	fi

	docvs=0

	cd "$SRCDIR/$name"
	case "$mode" in
	none|"")
		;;
	cvsync)
		[ -n "$SKIPSUP" ] || cvsync $verbose_cvsync "$file"
		docvs=1
		;;
	cvsup)
		[ -n "$SKIPSUP" ] || cvsup $verbose_cvsup "$file"
		docvs=1
		;;
	rsync)
		if [ -z "$SKIPSUP" ]
		then
			for loc in $file
			do
				rsync -a --delete -z $verbose_rsync "$loc" "$CVSDIR/$name/"
			done
		fi
		docvs=1
		;;
	esac

	if [ $docvs -ne 0 ]
	then
		[ -n "$RECVS" ] && rm -rf "$SRCDIR/$name/"*
		cat .cvsinfo | while read module dir tag _rem
		do
			cvs $verbose_cvs -r -R -d "$CVSDIR/$name" \
				co -d $dir -PA -r "$tag" $module || true
		done
	fi

	[ -e .glimpse_exclude ] || echo "CVS/" > .glimpse_exclude
	glimpseindex -o -n -B -E -f -M 20 -t ${INDEX} -H "$SRCDIR/$name" `cut -f 2 .cvsinfo` > $verbose_glimpse
done


[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]