#!/bin/sh
+LC_COLLATE="C"
progname="${0##*/}"
warn ()
usage ()
{
cat <<EOF
-Usage: $progname lustretag
- where lustretag is a tag of the lustre-core module
+Usage: $progname <lustretag>
+ where <lustretag> is a tag of the lustre-core module
EOF
}
+if [ -z "$LUSTRECVS_UPDATED" ] ; then
+ echo "$progname: updating lustrecvs"
+ cvs up -l || fatal 1 "Error updating lustrecvs"
+ export LUSTRECVS_UPDATED=yes
+ exec "$0" "$@"
+fi
+
+[ "$1" = "-r" ] && shift
+
buildtag="HEAD"
lustretag="$1"
+shift
+
+if [ "$*" ] ; then
+ usage >&2
+ exit 1
+fi
+
case "$lustretag" in
'')
exit 0
;;
+ # These releases did not get build tagged for them because they
+ # this build system didn't exist when they were tagged
+ v1_2_8|v1_4_0)
+ buildtag="b1_4"
+ ;;
+
+ b1_4*) buildtag="b1_4" ;;
+
+ b_release_1_4_6-patchless) buildtag="b1_4" ;;
+ b_release_1_4_7-test) buildtag="b_release_1_4_7" ;;
+
+ v* | b_release*) buildtag=$lustretag ;;
+
# this is the branch table
# keep this list sorted alphabetically!
esac
+error_modules=
cvs_cmd ()
{
- local dir="$1"
- local module="$2"
- local tag="$3"
- local cotag=""
- local update=""
+ dir="$1"
+ module="$2"
+ tag="$3"
+ cotag=""
+ update=""
if [ "$tag" = "HEAD" ] ; then
cotag=""
uptag="-A"
- else
+ elif [ "$tag" ] ; then
cotag="-r $tag"
uptag="-r $tag"
+ else
+ # silently skip if no tag was specified
+ return
fi
if [ -d "$dir" ] ; then
echo "$progname: Updating $dir to $tag"
- ( cd "$dir" && cvs up $uptag )
+ ( cd "$dir" && cvs up -dP $uptag )
else
echo "$progname: Checking out $dir from $tag"
- cvs co $cotag -d "$dir" "$module"
+ cvs co -P $cotag -d "$dir" "$module"
+ fi
+ if [ $? != 0 ] ; then
+ error_modules="$dir $error_modules"
fi
}
else
fatal 1 "build/buildcvs does not exist; not updating other modules."
fi
+
+if [ "$error_modules" ] ; then
+ fatal 1 "There were errors checking out the following directories: $error_modules"
+fi