You need to sign in or sign up before continuing.
Newer
Older
progname="${0##*/}"
warn ()
{
[ "$1" ] && echo >&2
[ "$1" ] && echo "$progname: $1" >&2
[ "$1" ] && echo >&2
}
fatal ()
{
warn "$2"
exit "$1"
}
usage ()
{
cat <<EOF
where <lustretag> is a tag of the lustre-core module
and <pindate> is an optional quoted timestamp suitable for cvs -D
echo "$progname: updating lustrecvs"
# If checking out a specific tag, make sure all of the files here are also
# checked out with the same tag to avoid later changes breaking things.
case "$1" in
export LUSTRECVS_UPDATED=yes
exec "$0" "$@"
fi
if [ "$*" ] ; then
usage >&2
exit 1
fi
'')
warn "a lustretag is required."
usage >&2
exit 1
;;
--help | -h)
usage
exit 0
;;
# this is the branch table
# keep this list sorted alphabetically!
# These use special build directories
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" ;;
b_release*) buildtag=$lustretag ;;
# 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)
# this is the branch table
# keep this list sorted alphabetically!
*)
buildtag="HEAD"
dir="$1"
module="$2"
tag="$3"
cotag=""
update=""
cotag="-r $tag"
uptag="-r $tag"
else
# silently skip if no tag was specified
return
fi
# create a cvs date format that will survive shell expansion
if [ -n "$pindate" ]; then
datecmd=$(date -u +%s -d "$pindate")
datecmd="-D @$datecmd"
echo "$progname: Updating $dir to $tag"
( cd "$dir" && cvs up $datecmd -dAP $uptag )
echo "$progname: Checking out $dir from $tag"
hg_cmd ()
{
dir="$1"
base_url="$2"
repository="$3"
if [ ! "$repository" ]; then
return
fi
if ! which hg &> /dev/null; then
cat <<EOF
Error: Mercurial is missing, try 'yum install mercurial', 'apt-get install
mercurial' or try http://rpmfind.net/linux/rpm2html/search.php?query=mercurial
EOF
error_modules="$dir $error_modules"
return
fi
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
url="$base_url/$repository"
# create a cvs date format that will survive shell expansion
if [ -n "$pindate" ]; then
datecmd=$(date -u +%s -d "$pindate")
datecmd="-d \"$datecmd 0\""
else
datecmd=""
fi
if [ -d "$dir" ]; then
echo "$progname: Updating $dir"
if [ -f "$dir/update.sh" ]; then
( cd "$dir" && ./update.sh $datecmd )
else
( cd "$dir" && hg pull && hg update $datecmd )
fi
else
echo "$progname: Checking out $dir"
hg clone $url $dir
if [ -f "$dir/setup.sh" ]; then
( cd "$dir" && ./setup.sh $datecmd )
else
( cd "$dir" && hg update $datecmd )
fi
fi
if [ $? != 0 ] ; then
error_modules="$dir $error_modules"
fi
}
if [ -f build/buildcvs ] ; then
. build/buildcvs
else
fatal 1 "build/buildcvs does not exist; not updating other modules."
fi