Pbuilder may read IDMETA to get list distros
[git-tools-moved-to-github.git] / id-deb-build / id-pbuild-all.sh
1 #!/bin/sh
2 update=true
3 if test -f IDMETA; then
4         . ./IDMETA
5 fi
6 if test -d deb-src; then
7         cd deb-src
8 fi
9 for f in *.dsc; do
10         if test -f "$f"; then
11                 PKG=$f
12         fi
13 done
14 if test -z "$PKG"; then
15         echo "Specify .dsc file"
16         exit 1
17 fi
18 if test ! -e "$PKG"; then
19         echo "${PKG} does not exist"
20         exit 1
21 fi
22 PRODUCT=`echo *.dsc|sed 's/_.*//g'`
23 if test -z "$DEBIAN_DIST"; then
24         DEBIAN_DIST="squeeze etch lenny"
25 fi
26 if test -z "$UBUNTU_DIST"; then
27         UBUNTU_DIST="karmic jaunty intrepid hardy"
28 fi
29
30 if test "$1" = "upload"; then
31         for dist in ${UBUNTU_DIST}; do
32                 scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/ubuntu/${dist}
33         done
34         for dist in ${DEBIAN_DIST}; do
35                 scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/debian/${dist}
36         done
37         echo "Remember to update APT on ftp.indexdata.dk"
38         echo "cd git-tools/update-archive"
39         echo "sudo su"
40         echo "./update-archive.sh"
41         exit 0
42 fi
43 i=0
44 concurrency=4
45 echo "Building $PKG"
46 date
47 for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do
48     for arch in i386 amd64; do
49         rm -fr ${dist}-${arch}
50         (
51             if test ! -f /var/cache/pbuilder/${dist}-${arch}-base.tgz; then
52                 DIST=$dist ARCH=$arch pbuilder create
53             fi
54             if $update; then
55                 DIST=$dist ARCH=$arch pbuilder update --override-config
56             fi
57             DIST=$dist ARCH=$arch pbuilder --build $PKG
58             ) >${dist}-${arch}.log 2>&1 &
59         i=`expr $i + 1`
60         if test $i -eq $concurrency; then
61             i=0
62             wait
63         fi
64     done
65 done
66 wait
67 for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do
68     for arch in i386 amd64; do
69         
70         if test -f ${dist}-${arch}/*.dsc; then
71             :
72         else
73             echo "No .dsc file for ${dist}-${arch}"
74             exit 1
75         fi
76     done
77 done
78 date
79 echo "Done"