Update the rebuild script to use reprepro.
authorMatthijs Kooijman <matthijs@stdin.nl>
Wed, 27 Jan 2010 16:46:12 +0000 (17:46 +0100)
committerMatthijs Kooijman <matthijs@stdin.nl>
Wed, 27 Jan 2010 16:46:12 +0000 (17:46 +0100)
rebuild

diff --git a/rebuild b/rebuild
index 60d1db070e416be08b38f81dc138d22d53708111..97c08acece41b08f3120cfab86f6b21b0ffbc853 100755 (executable)
--- a/rebuild
+++ b/rebuild
@@ -1,12 +1,19 @@
 #!/bin/sh
+
+# The location of the sources
 SOURCES=sources/equivs
-PACKAGES=public/packages
+# The codename of the archive to import into
+CODENAME=stderr
 
-mkdir -p $PACKAGES
+# Save the root of the repository
+cd `dirname $0`
+REPO_ROOT=`pwd`
 
-cd $PACKAGES
+# Create our output dir
+OUT_DIR=`mktemp -d` || exit 1
+cd $OUT_DIR
 
-for i in ../../$SOURCES/*; do 
+for i in $REPO_ROOT/$SOURCES/*; do 
        BASE=`basename "$i"`
        if [ -d "$i" ]; then
                echo "Skipping directory '$BASE'"
@@ -28,13 +35,26 @@ for i in ../../$SOURCES/*; do
                echo "Skipping non-equivs file '$BASE'"
                continue;
        fi
-       if [ -f "${PACKAGE}_${VERSION}_all.deb" ]; then
-               echo "Skipping $PACKAGE, version $VERSION already built"
-               continue;
+
+       # Find out what the current repostory version is. We simply take the
+       # first of the architectures in the output, since these are
+       # architecture all packages and should have the same version on all
+       # archs.
+       REPO_VERSION=`$REPO_ROOT/reprepro list "${CODENAME}" "${PACKAGE}" | head -1 | cut -d' ' -f 3`
+       if dpkg --compare-versions "${REPO_VERSION}" ge "${VERSION}"; then
+               echo "Not building version $VERSION of $PACKAGE, version $REPO_VERSION already in repository"
+               continue
        fi
 
        echo "Building version $VERSION of $PACKAGE"
-       equivs-build $i
+       equivs-build $i || exit 1
+       
+       # Import the produced deb
+       $REPO_ROOT/reprepro includedeb "${CODENAME}" "${PACKAGE}_${VERSION}_all.deb" || exit 1
 done
 
-cd ../..
+# Conservatively delete our temporary directory (To prevent issues when
+# $OUT_DIR got set to / for some reason or something like that)
+cd /
+rm -f $OUT_DIR/*.deb
+rmdir $OUT_DIR