#!/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 </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