#!/bin/bash
-svnuri=file:///srv/svn-xen
+svnuri=`svn info /srv/checkout | sed -n 's/^Repository Root: //p'`
set -e
if [ $# -ne 1 ] ; then
- echo " usage: sx-build-release trunk/packages/package_name"
+ echo " usage: sx-build-release package_name"
exit 1
fi
-if [ -d build-release ] ; then
- echo "a previous build release directory exists; please clean up"
- exit 1
- fi
-
package=$1
-svn export $svnuri/$package build-release
-olddir=`pwd`
-cd build-release/`basename $package`
+rm -rf build-release/$package
+svn export $svnuri/trunk/packages/$package build-release/$package
+cd build-release/$package
+
eval `perl '-F:\s+' -lane 'print $F[0]."=".$F[1] if /^Version|^Source|^Distribution/' \
<(dpkg-parsechangelog)`
+dpkg-buildpackage -k"$(invirt-getconf apt.keyid)" -rfakeroot
+
+if ! svn ls $svnuri/package_tags/$Source >/dev/null 2>&1; then
+ svn mkdir $svnuri/package_tags/$Source \
+ -m "Create package tags directory"
+fi
+if ! svn ls $svnuri/package_tags/$Source/$Version >/dev/null 2>&1; then
+ svn cp $svnuri/trunk/packages/$package $svnuri/package_tags/$Source/$Version \
+ -m "Tag $Version of $Source"
+else
+ echo "$(basename $0): tag already exists, not making again"
+fi
-dpkg-buildpackage -us -uc -rfakeroot
-svn mkdir $svnuri/package_tags/$Source -m "Create package tags directory" ||true
-svn cp $svnuri/$package $svnuri/package_tags/$Source/$Version -m "Tag $Version of $Source"
cd ..
- reprepro-env include $Distribution `pwd`/${Source}_*${Version}*.changes
+[ $Distribution = 'unstable' ] \
+ || echo "$(basename $0): warning: Distribution is ${Distribution}, script expects unstable"
+changesfile=`pwd`/${Source}_*${Version}*.changes
+reprepro-env include unstable $changesfile
+reprepro-env copy stable unstable ${Source} \
+ $(perl '-F:\s+' -lane 'print $F[1]." " if /^Binary/' <$changesfile)
-cd $olddir
+cd ..
rm -rf build-release