blob: 8c1e5aa1febc0d16dd1fdb81fd912b33a68d68ae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
#!/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
echo "This is hdf5-$VERS released on `date`" >README.x
tail -n +2 <README >>README.x
mv README.x README
test "$verbose" && echo " Running tar..." 1>&2
( \
cd ..; \
tar cf x.tar hdf5-$VERS/Makefile \
`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
|