-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathmksnapshot.sh
executable file
·103 lines (92 loc) · 3.66 KB
/
mksnapshot.sh
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
#!/bin/sh -e
if [ $# -gt 1 ]; then
echo "Usage: $0 [branch]"
exit 1
fi
module=squid
tag=${1:-HEAD}
startdir=$PWD
date=`env TZ=GMT date +%Y%m%d`
tmpdir=${TMPDIR:-${PWD}}/${module}-${tag}-mksnapshot
CVSROOT=${CVSROOT:-/server/cvs-server/squid}
export CVSROOT
rm -rf $tmpdir
trap "rm -rf $tmpdir" 0
rm -f ${tag}.out
cvs -Q export -d $tmpdir -r $tag $module
if [ ! -f $tmpdir/configure ]; then
echo "ERROR! Tag $tag not found in $module"
fi
cd $tmpdir
eval `grep "^ *VERSION=" configure | sed -e 's/-CVS//'`
eval `grep "^ *PACKAGE=" configure`
ed -s configure.in <<EOS
g/${VERSION}-CVS/ s//${VERSION}-${date}/
w
EOS
ed -s configure <<EOS
g/${VERSION}-CVS/ s//${VERSION}-${date}/
w
EOS
./configure --silent
make -s dist-all
basetarball=/server/httpd/htdocs/squid-cache.org/Versions/v`echo $VERSION | cut -d. -f1`/`echo $VERSION | cut -d. -f-2|cut -d- -f1`/${PACKAGE}-${VERSION}.tar.bz2
if (echo $VERSION | grep PRE) || (echo $VERSION | grep STABLE); then
echo "Differences from ${PACKAGE}-${VERSION} to ${PACKAGE}-${VERSION}-${date}" >${PACKAGE}-${VERSION}-${date}.diff
if [ -f $basetarball ]; then
tar jxf ${PACKAGE}-${VERSION}-${date}.tar.bz2
tar jxf $basetarball
diff -ruN ${PACKAGE}-${VERSION} ${PACKAGE}-${VERSION}-${date} >>${PACKAGE}-${VERSION}-${date}.diff || true
else
cvs -q rdiff -u -r SQUID_`echo $VERSION | tr .- __` -r $tag $module >>${PACKAGE}-${VERSION}-${date}.diff || true
fi
elif [ -f STABLE_BRANCH ]; then
stable=`cat STABLE_BRANCH`
echo "Differences from ${stable} to ${PACKAGE}-${VERSION}-${date}" >${PACKAGE}-${VERSION}-${date}.diff
cvs -q rdiff -u -r $stable -r $tag $module >>${PACKAGE}-${VERSION}-${date}.diff
fi
cd $startdir
cp -p $tmpdir/${PACKAGE}-${VERSION}-${date}.tar.gz .
echo ${PACKAGE}-${VERSION}-${date}.tar.gz >>${tag}.out
cp -p $tmpdir/${PACKAGE}-${VERSION}-${date}.tar.bz2 .
echo ${PACKAGE}-${VERSION}-${date}.tar.bz2 >>${tag}.out
if [ -f $tmpdir/${PACKAGE}-${VERSION}-${date}.diff ]; then
cp -p $tmpdir/${PACKAGE}-${VERSION}-${date}.diff .
echo ${PACKAGE}-${VERSION}-${date}.diff >>${tag}.out
fi
relnotes=$tmpdir/doc/release-notes/release.html
if [ -f $relnotes ]; then
cp -p $relnotes ${PACKAGE}-${VERSION}-${date}-RELEASENOTES.html
echo ${PACKAGE}-${VERSION}-${date}-RELEASENOTES.html >>${tag}.out
ed -s ${PACKAGE}-${VERSION}-${date}-RELEASENOTES.html <<EOF
g/"ChangeLog"/ s//"${PACKAGE}-${VERSION}-${date}-ChangeLog.txt"/g
w
EOF
fi
cp -p $tmpdir/ChangeLog ${PACKAGE}-${VERSION}-${date}-ChangeLog.txt
echo ${PACKAGE}-${VERSION}-${date}-ChangeLog.txt >>${tag}.out
# Generate Configuration Manual HTML
if [ -x $tmpdir/scripts/www/build-cfg-help.pl ]; then
make -C $tmpdir/src cf.data
mkdir -p $tmpdir/doc/cfgman
$tmpdir/scripts/www/build-cfg-help.pl --version ${VERSION} -o $tmpdir/doc/cfgman $tmpdir/src/cf.data
sh -c "cd $tmpdir/doc/cfgman && tar -zcf $PWD/${PACKAGE}-${VERSION}-${date}-cfgman.tar.gz *"
echo ${PACKAGE}-${VERSION}-${date}-cfgman.tar.gz >>${tag}.out
$tmpdir/scripts/www/build-cfg-help.pl --version ${VERSION} -o ${PACKAGE}-${VERSION}-${date}-cfgman.html -f singlehtml $tmpdir/src/cf.data
gzip -f -9 ${PACKAGE}-${VERSION}-${date}-cfgman.html
echo ${PACKAGE}-${VERSION}-${date}-cfgman.html.gz >>${tag}.out
fi
# Collate Manual Pages and generate HTML versions
if (groff --help >/dev/null); then
make -C ${tmpdir}/doc all
mkdir -p ${tmpdir}/doc/manuals
cp ${tmpdir}/doc/*.8 ${tmpdir}/doc/manuals/
for f in `ls -1 ${tmpdir}/helpers/*/*/*.8` ; do
cp $f ${tmpdir}/doc/manuals/
done
for f in `ls -1 ${tmpdir}/doc/manuals/*.8` ; do
cat ${f} | groff -E -Thtml -mandoc >${f}.html
done
sh -c "cd ${tmpdir}/doc/manuals && tar -zcf $PWD/${PACKAGE}-${VERSION}-${date}-manuals.tar.gz *"
echo ${PACKAGE}-${VERSION}-${date}-manuals.tar.gz >>${tag}.out
fi