lustrecvs 1.14 KiB
#!/bin/sh
progname="${0##*/}"
warn ()
{
[ "$1" ] && echo >&2
[ "$1" ] && echo "$progname: $1" >&2
[ "$1" ] && echo >&2
}
fatal ()
{
warn "$2"
exit "$1"
}
usage ()
{
cat <<EOF
Usage: $progname lustretag
where lustretag is a tag of the lustre-core module
EOF
}
buildtag="HEAD"
lustretag="$1"
case "$lustretag" in
'')
warn "a lustretag is required."
usage >&2
exit 1
;;
--help | -h)
usage
exit 0
;;
# this is the branch table
# keep this list sorted alphabetically!
*)
buildtag="HEAD"
;;
esac
cvs_cmd ()
{
local dir="$1"
local module="$2"
local tag="$3"
local cotag=""
local update=""
if [ "$tag" = "HEAD" ] ; then
cotag=""
uptag="-A"
else
cotag="-r $tag"
uptag="-r $tag"
fi
if [ -d "$dir" ] ; then
echo "$progname: Updating $dir to $tag"
( cd "$dir" && cvs up $uptag )
else
echo "$progname: Checking out $dir from $tag"
cvs co $cotag -d "$dir" "$module"
fi
}
cvs_cmd build lustre-build "$buildtag"
if [ -f build/buildcvs ] ; then
. build/buildcvs
else
fatal 1 "build/buildcvs does not exist; not updating other modules."
fi