#!/bin/sh
+LC_COLLATE="C"
progname="${0##*/}"
warn ()
usage ()
{
cat <<EOF
-Usage: $progname command lustretag [other tags]
- where command is checkout, rtag, tag, or update
- where lustretag is a logical tag across the modules
+Usage: $progname <lustretag>
+ where <lustretag> is a tag of the lustre-core module
EOF
}
-case "$1" in
- '')
- warn "a command is required."
- usage >&2
- exit 1
- ;;
- --help | -h)
- usage
- exit 0
- ;;
- checkout | co | get | rtag | rt | rfreeze | tag | ta | freeze | update | up | upd)
- cvscommand="$1"
- ;;
- *)
- usage >&2
- exit 1
- ;;
-esac
+if [ -z "$LUSTRECVS_UPDATED" ] ; then
+ echo "$progname: updating lustrecvs"
+ cvs up -l || fatal 1 "Error updating lustrecvs"
+ export LUSTRECVS_UPDATED=yes
+ exec "$0" "$@"
+fi
+
+buildtag="HEAD"
+lustretag="$1"
+shift
-case "$2" in
+if [ "$*" ] ; then
+ usage >&2
+ exit 1
+fi
+
+
+case "$lustretag" in
'')
warn "a lustretag is required."
usage >&2
# this is the branch table
# keep this list sorted alphabetically!
- b1_4)
- portalstag="HEAD"
- lustretag="b1_4"
- ;;
- b1_4_bgl)
- portalstag="b1_4_bgl"
- lustretag="b1_4_bgl"
- ;;
- b_cray)
- portalstag="HEAD"
- lustretag="b_cray"
- ;;
- HEAD)
- portalstag="HEAD"
- lustretag="HEAD"
- ;;
-
*)
- fatal 1 "This script does not contain branch information for $2. Please update the branch table if necessary."
+ buildtag="HEAD"
;;
+
esac
-cvs $cvscommand -r $portalstag portals
-cvs $cvscommand -r $lustretag -d lustre lustre-core
+cvs_cmd ()
+{
+ dir="$1"
+ module="$2"
+ tag="$3"
+ cotag=""
+ 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 -dP $uptag )
+ else
+ echo "$progname: Checking out $dir from $tag"
+ cvs co -P $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