#!/bin/bash
+#
# Creates debian and upstream packages
# Programmer: Kevin Rosenberg
-set -e
+set -e # abort on error
+
+progname="`basename \"$0\"`"
+
+usage () {
+ cat >&2 <<EOF
+Usage: $progname [options]
+Options:
+ -t Tag CVS tree with current version numbers
+ -d Use dpkg-buildpackage rather than default cvs-buildpackage
+ -l Run lintian after building
+ -h Print this brief help
+EOF
+}
+
+# Command line
+while [ $# != 0 ]; do
+ value="`echo x\"$1\" | sed -e 's/^x-.//'`"
+ case "$1" in
+ -h) usage; exit 0 ;;
+ -t) opt_tag=1 ;;
+ -d) opt_dpkg_buildpackage=1 ;;
+ -l) opt_lintian=1 ;;
+ *) usage; exit 0 ;;
+ esac
+ shift
+done
-VERSION=`cat VERSION`
DEBPKG=cl-uffi
PKG=uffi
-TOPDIR=`basename $PWD`
+TOPDIR=`pwd`
+VERSION=`sed -n -e "s/${DEBPKG} (\(.*\)-[0-9]).*/\1/p" < debian/changelog |head -1`
+DEBVERSION=`sed -n -e "s/${DEBPKG} (\(.*\)).*/\1/p" < debian/changelog |head -1`
+PACKAGE_DIR=/usr/local/src/Packages/${DEBPKG}
DISTDIR=${PKG}-${VERSION}
DEBDIR=${DEBPKG}-${VERSION}
-#echo "(re)tagging with release tag '$TAG'"
-#TAG=upstream_version_`echo $VERSION | tr . _`
-#cvs -q rtag -d $TAG $PKG
-#cvs -q tag -F $TAG
-
+if [ -z ${opt_dpkg_buildpackage} ]; then
+ export CVSROOT=`cat CVS/Root`
+fi
+if [ ! -z ${opt_tag} ]; then
+ DEB_TAG=debian_version_`echo ${DEBVERSION} | tr . _`
+ UPSTREAM_TAG=upstream_version_`echo ${VERSION} | tr . _`
+ echo "(Re-)tagging with Debian tag '${DEB_TAG}'"
+ cvs -q rtag -d ${DEB_TAG} ${PKG} > /dev/null
+ cvs -q tag -F ${DEB_TAG} > /dev/null
+
+ # Retag with upstream tag if release not 0 or 1
+ if [ "`echo ${DEBVERSION} | egrep '\-0$\-1$]'`" != "" ]; then
+ echo "(Re-)tagging with Upstream tag '${UPSTREAM_TAG}'"
+ cvs -q rtag -d $UPSTREAM_TAG $PKG > /dev/null
+ cvs -q tag -F $UPSTREAM_TAG > /dev/null
+ fi
+fi
# Prepare for archive
cd ..
rm -f ${PKG}_${VERSION}.tar.gz ${DEBPKG}_${VERSION}.orig.tar.gz
cp -a ${TOPDIR} ${DISTDIR}
echo "Cleaning distribution directory ${DISTDIR}"
-find ${DISTDIR} -type f -name .cvsignore -exec rm -f {} \;
+rm -f ${DISTDIR}/upload.sh ${DISTDIR}/make-dist.sh ${DISTDIR}/cvsbp-prepare
+rm -f `find ${DISTDIR} -type f -name .cvsignore`
rm -rf `find ${DISTDIR} -type d -name CVS`
-rm -f `find ${DISTDIR} -type f -name '*~' -or -name '#*' -or -name '#*#'`
+rm -f `find ${DISTDIR} -type f -name '*~' -or -name '#*' -or -name '#*#' -or -name '.#*'`
rm -f `find ${DISTDIR}/doc -type f -name \*.tex -or -name \*.aux -or \
-name \*.log -or -name \*.out -or -name \*.dvi`
rm -f ${DEBDIR}/debian/.cvsignore
rm -rf ${DEBDIR}/debian/CVS
-rm -rf ${DEBDIR}
rm -rf ${DISTDIR}
-if [ "${CVS_BUILDPACKAGE}" != "" ]; then
- cd ${DEBDIR}
- echo "Building Debian files"
- dpkg-buildpackage -rfakeroot -kkevin@b9.com -a
-
- echo "Checking Debian Files"
- lintian ${DEBPKG}_${VERSION}-*.changes
+echo "Moving upstream archives to ${PACKAGE_DIR}"
+mkdir -p /usr/local/src/Packages/${DEBPKG}
+rm -f ${PACKAGE_DIR}/${DISTDIR}.zip ${PACKAGE_DIR}/${DEBPKG}_${VERSION}.orig.tar.gz
+mv ${DISTDIR}.zip ${DEBPKG}_${VERSION}.orig.tar.gz ${DISTDIR}.tar.gz ${PACKAGE_DIR}
- echo "Moving Debian Files to /usr/local/src/Packages/${DEBPKG}"
- mkdir -p /usr/local/src/Packages/${DEBPKG}
- mv ${DEBPKG}_${VERSION}* /usr/local/src/Packages/${DEBPKG}
+echo "Building Debian files"
+if [ -z ${opt_dpkg_buildpackage} ]; then
+ cd ${TOPDIR}
+ cvs-buildpackage -rfakeroot -kkevin@rosenberg.net -H${TOPDIR}/cvsbp-prepare -tC -i.pdf -sa ${DEBPKG}
cd ..
+else
+ cd ${DEBDIR}
+ dpkg-buildpackage -rfakeroot -kkevin@rosenberg.net -a -sa
+ mv ${DEBPKG}_${VERSION}* ${PACKAGE_DIR}
+ cd ..
+fi
+rm -rf ${DEBDIR}
+
+if [ ! -z ${opt_lintian} ]; then
+ pushd ${PACKAGE_DIR} > /dev/null
+ lintian ${DEBPKG}_${DEBVERSION}_*.changes
+ popd > /dev/null
fi
cd ${TOPDIR}