hdf5/bin/snapshot
Robb Matzke 06c7d8fbbf [svn-r1354]
Changes since 19990615
----------------------

./README
	Version number synchronized with library.

./bin/h5vers
	If the version number of the library is changed then the first
	line of the README file is also changed to something like

	     This is hdf5-1.2.3 currently under development

	The `release' script (which also gets run by `snapshot')
	changes that line to include the release date but keeps the
	version number the same.  The net effect is that the version
	numbers in README and H5public.h should now always stay
	synchronized.

./bin/snapshot
	The CVS checkin comment includes the version number for the
	snapshot that was just made.

./tools/testh5toh4
	Changed `*-SKIP-*' to `-SKIP-' to be consistent with the other
	tests.
1999-06-16 10:09:56 -05:00

86 lines
2.5 KiB
Bash
Executable File

#!/bin/sh
set -x
date
#
# This script should be run nightly from cron. It checks out hdf5
# from the CVS source tree and compares it against the previous
# snapshot. If anything significant changed then a new snapshot is
# created, the minor version number is incremented, and the change is
# checked back into the CVS repository.
#
# The path isn't properly initialized on hawkwind -- /usr/local/bin is
# either missing or is after /usr/bin when it should be before.
PATH="/usr/local/bin:$PATH"
# Where are the snapshots stored?
ARCHIVES=/hdf3/ftp/pub/outgoing/hdf5/snapshots
if [ "$1" ]; then
ARCHIVES="$1"
shift
fi
# What compression methods to use?
METHODS="gzip bzip2"
# At NCSA, the standard place to find HDF4 software is in /usr/ncsa/.
CONFIGURE="./configure --with-hdf4=/usr/ncsa/include,/usr/ncsa/lib"
# Create a working directory. Hopefully one is left over from last
# time that still has the contents of the previous release. But if
# not, just create one and assume that a snapshot is necessary.
COMPARE=${HOME}/hdf5-snapshots
test -d ${COMPARE} || mkdir -p ${COMPARE} || exit 1
# Check out the current version from CVS
if [ -z "$CVSROOT" ]; then
echo "Where is the CVS repository?" 1>&2
exit 1
fi
cvs -Q co -d ${COMPARE}/current hdf5 || exit 1
# Compare it with the previous version. Compare only files listed in
# the MANIFEST plus the MANIFEST itself.
snapshot=yes
if [ -d ${COMPARE}/previous ]; then
if (diff -c ${COMPARE}/previous/MANIFEST ${COMPARE}/current/MANIFEST); then
snapshot=no
for src in `grep '^\.' ${COMPARE}/current/MANIFEST|expand|cut -f1 -d' '`; do
diff -I H5_VERS_RELEASE -I " released on " \
-I " currently under development" \
${COMPARE}/previous/$src ${COMPARE}/current/$src || \
snapshot=yes
# Don't break because we want to see all the diffs.
done
fi
fi
# Make sure all the serial tests work.
if [ "$snapshot" = "yes" ]; then
if (cd ${COMPARE}/current; \
${CONFIGURE}; \
make _test); then
:
else
snapshot=no
fi
(cd ${COMPARE}/current; make distclean)
fi
# Release snapshot, update version, and commit to cvs and tag
if [ "$snapshot" = "yes" ]; then
(
cd ${COMPARE}/current
cvs -Q tag hdf5-`perl -w bin/h5vers |tr . _`
bin/release -d $ARCHIVES $METHODS
RELEASE_VERSION="`perl -w bin/h5vers -v`"
perl -w bin/h5vers -i
cvs -Q commit -m "Snapshot $RELEASE_VERSION"
)
fi
# Replace the previous version with the current version.
rm -rf ${COMPARE}/previous
mv ${COMPARE}/current ${COMPARE}/previous
exit 0