2009-01-29 13:46:04 +03:00
#!/bin/sh
#
2009-05-13 00:59:35 +04:00
# maketarball.sh - create a tarball from the git branch HEAD
#
2009-01-29 13:46:04 +03:00
# Copyright (C) Michael Adam 2009
2009-05-13 00:59:35 +04:00
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the Free
# Software Foundation; either version 3 of the License, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
# more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses/>.
#
2009-01-29 13:46:04 +03:00
#
# Create CTDB source tarball of the current git branch HEAD.
# The version is extracted from the spec file...
# The first extra argument will be added as an additional version.
2009-05-13 00:59:35 +04:00
#
2009-01-29 13:46:04 +03:00
DIRNAME = $( dirname $0 )
TOPDIR = ${ DIRNAME } /..
2009-12-02 01:51:51 +03:00
TAR_PREFIX_TMP = "ctdb-tmp"
SPECFILE = /tmp/${ TAR_PREFIX_TMP } /packaging/RPM/ctdb.spec
2009-11-26 10:32:24 +03:00
SPECFILE_IN = ${ SPECFILE } .in
2009-01-29 13:46:04 +03:00
EXTRA_SUFFIX = " $1 "
2009-12-02 01:51:51 +03:00
# if no githash was specified on the commandline,
# then use the current head
if test x" $GITHASH " = "x" ; then
GITHASH = " $( git log --pretty= format:%h -1) "
2009-11-26 10:32:24 +03:00
fi
2009-12-02 01:51:51 +03:00
GITHASH_SUFFIX = " . ${ GITHASH } "
if test " x $USE_GITHASH " = "xno" ; then
GITHASH_SUFFIX = ""
2009-01-29 13:46:04 +03:00
fi
if echo | gzip -c --rsyncable - > /dev/null 2>& 1 ; then
GZIP = "gzip -9 --rsyncable"
else
GZIP = "gzip -9"
fi
pushd ${ TOPDIR }
2009-12-02 01:51:51 +03:00
echo "Creating tarball ... "
git archive --prefix= ${ TAR_PREFIX_TMP } / ${ GITHASH } | ( cd /tmp ; tar xf - )
2009-01-29 13:46:04 +03:00
RC = $?
popd
2009-11-26 10:34:44 +03:00
if [ $RC -ne 0 ] ; then
echo "Error calling git archive."
exit 1
fi
2009-01-29 13:46:04 +03:00
2009-12-02 01:51:51 +03:00
sed -e s/GITHASH/${ GITHASH_SUFFIX } /g \
< ${ SPECFILE_IN } \
> ${ SPECFILE }
VERSION = $( grep ^Version ${ SPECFILE } | sed -e 's/^Version:\ \+//' ) ${ GITHASH_SUFFIX }
if [ " x ${ EXTRA_SUFFIX } " != "x" ] ; then
VERSION = " ${ VERSION } - ${ EXTRA_SUFFIX } "
fi
TAR_PREFIX = " ctdb- ${ VERSION } "
TAR_BASE = " ctdb- ${ VERSION } "
pushd /tmp/${ TAR_PREFIX_TMP }
2009-11-26 10:34:44 +03:00
./autogen.sh
RC = $?
popd
if [ $RC -ne 0 ] ; then
echo "Error calling autogen.sh."
exit 1
fi
2009-01-29 13:46:04 +03:00
2009-12-02 01:51:51 +03:00
if test " x ${ DEBIAN_MODE } " = "xyes" ; then
TAR_PREFIX = " ctdb- ${ VERSION } .orig "
TAR_BASE = " ctdb_ ${ VERSION } .orig "
2009-12-02 01:54:12 +03:00
rm -rf /tmp/${ TAR_PREFIX_TMP } /lib/popt
2009-12-02 01:51:51 +03:00
fi
TAR_BALL = ${ TAR_BASE } .tar
TAR_GZ_BALL = ${ TAR_BALL } .gz
mv /tmp/${ TAR_PREFIX_TMP } /tmp/${ TAR_PREFIX }
2009-11-26 10:34:44 +03:00
pushd /tmp
tar cf ${ TAR_BALL } ${ TAR_PREFIX }
RC = $?
2009-01-29 13:46:04 +03:00
if [ $RC -ne 0 ] ; then
2009-11-26 10:34:44 +03:00
popd
2009-01-29 13:46:04 +03:00
echo "Creation of tarball failed."
exit 1
fi
2009-11-26 10:34:44 +03:00
${ GZIP } ${ TAR_BALL }
RC = $?
if [ $RC -ne 0 ] ; then
popd
echo "Zipping tarball failed."
exit 1
fi
rm -rf ${ TAR_PREFIX }
popd
mv /tmp/${ TAR_GZ_BALL } .
echo "Done."
2009-01-29 13:46:04 +03:00
exit 0