mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-01-30 15:32:37 +08:00
e4aae4fd9b
Fixed a bug that caused `h5vers -i' to fail with a usage message. The new behavior is the same as `h5vers -i release' which increments the release number. ./bin/snapshot A shell script intended to be run nightly from cron which compares the current version of hdf5 against the previous version. If there are differences it creates a tar file in an ftp directory, increments the hdf5 release number, and commits the changes back into the cvs repository. The name of the ftp directory in which to place the release can be given on the command line (default /hdf3/ftp/pub/outgoing/hdf5/snapshots). The CVSROOT environment variable must be set.
115 lines
3.0 KiB
Bash
Executable File
115 lines
3.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Make a release of hdf5. The command-line switches are:
|
|
#
|
|
# -d DIR The name of the directory where the releas(es) should be
|
|
# placed. By default, the directory is ./releases
|
|
#
|
|
# The other command-line options are the names of the programs to use
|
|
# for compressing the resulting tar archive (if none are given then
|
|
# `tar' is assumed):
|
|
#
|
|
# tar -- use tar and don't do any compressing.
|
|
# compress -- use compress and append `.Z' to the output name.
|
|
# gzip -- use gzip with `-9' and append `.gz' to the output name.
|
|
# bzip2 -- use bzip2 with `-9' and append `.bz2' to the output name.
|
|
#
|
|
# Examples:
|
|
#
|
|
# $ release
|
|
# releases/hdf5-1.0.38.tar
|
|
#
|
|
# $ release gzip
|
|
# releases/hdf5-1.0.38.tar.gz
|
|
#
|
|
# $ release -d /tmp tar compress gzip bzip2
|
|
# /tmp/hdf5-1.0.38.tar
|
|
# /tmp/hdf5-1.0.38.tar.Z
|
|
# /tmp/hdf5-1.0.38.tar.gz
|
|
# /tmp/hdf5-1.0.38.tar.bz2
|
|
#
|
|
|
|
# Defaults
|
|
DEST=releases
|
|
VERS=`bin/h5vers`
|
|
test "$VERS" || exit 1
|
|
verbose=yes
|
|
|
|
# Command-line arguments
|
|
if [ "X$1" = "X-d" ]; then
|
|
DEST="$2"
|
|
shift
|
|
shift
|
|
fi
|
|
methods="$*"
|
|
if [ "X$methods" = "X" ]; then
|
|
methods=tar
|
|
fi
|
|
test "$verbose" && echo "Releasing hdf5-$VERS to $DEST" 1>&2
|
|
if [ ! -d $DEST ]; then
|
|
echo " Destination directory $DEST does not exist" 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
# Check that all the files in MANIFEST exist and that (if this is a
|
|
# CVS checkout) that all the CVS-managed files appear in the
|
|
# MANIFEST.
|
|
test "$verbose" && echo " Checking manifest..." 1>&2
|
|
test -f MANIFEST || exit 1
|
|
for file in `cat MANIFEST`; do
|
|
if [ ! -f $file ]; then
|
|
echo "- $file"
|
|
fail=yes
|
|
fi
|
|
done
|
|
for cvs in `find . -type d -name CVS -print`; do
|
|
path=`echo $cvs |sed s+/CVS++`
|
|
for file in `cut -d/ -f2 $cvs/Entries`; do
|
|
if (grep $path/$file MANIFEST >/dev/null); then
|
|
:
|
|
else
|
|
echo "+ $path/$file"
|
|
fail=yes
|
|
fi
|
|
done
|
|
done
|
|
if [ "X$fail" = "Xyes" ]; then
|
|
cat 1>&2 <<EOF
|
|
The MANIFEST is out of date. Files marked with a minus sign (-) no
|
|
longer exist; files marked with a plus sign (+) are CVS-managed but do
|
|
not appear in the MANIFEST. Please remedy the situation and try again.
|
|
EOF
|
|
exit 1
|
|
fi
|
|
|
|
# Prepare the source tree for a release.
|
|
test -h ../hdf5-$VERS && rm ../hdf5-$VERS
|
|
ln -s `pwd` ../hdf5-$VERS || exit 1
|
|
mv Makefile ../Makefile.x 2>/dev/null #might fail
|
|
cp -p Makefile.dist Makefile
|
|
test "$verbose" && echo " Running tar..." 1>&2
|
|
(cd ..; tar cf x.tar `sed s+^.+hdf5-$VERS+ hdf5-$VERS/MANIFEST` || exit 1)
|
|
|
|
# Compress
|
|
for comp in $methods; do
|
|
case $comp in
|
|
tar)
|
|
cp -p ../x.tar $DEST/hdf5-$VERS.tar;;
|
|
compress)
|
|
test "$verbose" && echo " Running compress..." 1>&2
|
|
compress -c <../x.tar >$DEST/hdf5-$VERS.tar.Z;;
|
|
gzip)
|
|
test "$verbose" && echo " Running gzip..." 1>&2
|
|
gzip -9 <../x.tar >$DEST/hdf5-$VERS.tar.gz;;
|
|
bzip2)
|
|
test "$verbose" && echo " Running bzip2..." 1>&2
|
|
bzip2 -9 <../x.tar >$DEST/hdf5-$VERS.tar.gz;;
|
|
esac
|
|
done
|
|
|
|
# Remove temporary things
|
|
test -f ../Makefile.x && mv ../Makefile.x Makefile
|
|
rm -f ../hdf5-$VERS
|
|
rm -f ../x.tar
|
|
exit 0
|