Pbuilder may read IDMETA to get list distros
[git-tools-moved-to-github.git] / id-deb-build / id-pbuild-all.sh
index e880884..b93a9f1 100755 (executable)
@@ -1,6 +1,16 @@
 #!/bin/sh
 update=true
-PKG="$1"
+if test -f IDMETA; then
+       . ./IDMETA
+fi
+if test -d deb-src; then
+       cd deb-src
+fi
+for f in *.dsc; do
+       if test -f "$f"; then
+               PKG=$f
+       fi
+done
 if test -z "$PKG"; then
        echo "Specify .dsc file"
        exit 1
@@ -9,14 +19,61 @@ if test ! -e "$PKG"; then
        echo "${PKG} does not exist"
        exit 1
 fi
-for dist in jaunty intrepid hardy etch lenny; do
-       for arch in i386 amd64; do
-               if test ! -f /var/cache/pbuilder/${dist}-${arch}-base.tgz; then
-                       DIST=$dist ARCH=$arch pbuilder create
-               fi
-               if $update; then
-                       DIST=$dist ARCH=$arch pbuilder update --override-config
-               fi
-               DIST=$dist ARCH=$arch pbuilder --build $PKG
+PRODUCT=`echo *.dsc|sed 's/_.*//g'`
+if test -z "$DEBIAN_DIST"; then
+       DEBIAN_DIST="squeeze etch lenny"
+fi
+if test -z "$UBUNTU_DIST"; then
+       UBUNTU_DIST="karmic jaunty intrepid hardy"
+fi
+
+if test "$1" = "upload"; then
+       for dist in ${UBUNTU_DIST}; do
+               scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/ubuntu/${dist}
+       done
+       for dist in ${DEBIAN_DIST}; do
+               scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/debian/${dist}
        done
+       echo "Remember to update APT on ftp.indexdata.dk"
+       echo "cd git-tools/update-archive"
+       echo "sudo su"
+       echo "./update-archive.sh"
+       exit 0
+fi
+i=0
+concurrency=4
+echo "Building $PKG"
+date
+for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do
+    for arch in i386 amd64; do
+        rm -fr ${dist}-${arch}
+       (
+           if test ! -f /var/cache/pbuilder/${dist}-${arch}-base.tgz; then
+               DIST=$dist ARCH=$arch pbuilder create
+           fi
+           if $update; then
+               DIST=$dist ARCH=$arch pbuilder update --override-config
+           fi
+           DIST=$dist ARCH=$arch pbuilder --build $PKG
+           ) >${dist}-${arch}.log 2>&1 &
+       i=`expr $i + 1`
+       if test $i -eq $concurrency; then
+           i=0
+           wait
+       fi
+    done
+done
+wait
+for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do
+    for arch in i386 amd64; do
+       
+       if test -f ${dist}-${arch}/*.dsc; then
+           :
+       else
+           echo "No .dsc file for ${dist}-${arch}"
+           exit 1
+       fi
+    done
 done
+date
+echo "Done"