No default list of distributions
[git-tools-moved-to-github.git] / id-deb-build / id-pbuild-all.sh
1 #!/bin/sh
2
3 usage()
4 {
5     cat <<EOF
6 Usage: id-pbuild-all.sh [OPTIONS]
7 Options:
8         [--debian=distros]
9         [--ubuntu=distros]
10         [--update=true|false]
11         [--upload]
12         [--concurrency=N]
13 EOF
14     exit $1
15 }
16
17 # things that might be set by options
18 upload=false
19 update=true
20 do_help=false
21 concurrency=4
22
23 if test -f IDMETA; then
24     . ./IDMETA
25 fi
26 while test $# -gt 0; do
27     case "$1" in
28         -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
29         *) optarg= ;;
30     esac
31     
32     case $1 in
33         --ubuntu=*)
34             UBUNTU_DIST=$optarg
35             ;;
36         --debian=*)
37             DEBIAN_DIST=$optarg
38             ;;
39         --update=*)
40             update=$optarg
41             ;;
42         --concurrency=*)
43             concurrency=$optarg
44             ;;
45         --upload)
46             upload=true
47             ;;
48         -*)
49             do_help=yes
50             ;;
51     esac
52     shift
53 done
54
55 if test "$do_help" = "yes"; then
56     usage 1 1>&2
57 fi
58
59 if test -d deb-src; then
60     cd deb-src
61 fi
62 for f in *.dsc; do
63     if test -f "$f"; then
64         PKG=$f
65     fi
66 done
67 if test -z "$PKG"; then
68     echo "Specify .dsc file"
69     exit 1
70 fi
71 if test ! -e "$PKG"; then
72     echo "${PKG} does not exist"
73     exit 1
74 fi
75 PRODUCT=`echo *.dsc|sed 's/_.*//g'`
76
77 echo "Dsc $PKG . Product $PRODUCT"
78 echo "Ubuntu distros: $UBUNTU_DIST"
79 echo "Debian distros: $DEBIAN_DIST"
80 if $upload; then
81     for dist in ${UBUNTU_DIST}; do
82         scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/ubuntu/${dist}
83     done
84     for dist in ${DEBIAN_DIST}; do
85         scp ${dist}-*/* ftp.indexdata.dk:/home/ftp/pub/${PRODUCT}/debian/${dist}
86     done
87     echo "Remember to update APT on ftp.indexdata.dk"
88     echo "cd git-tools/update-archive"
89     echo "sudo su"
90     echo "./update-archive.sh"
91     exit 0
92 fi
93 i=0
94 date
95 for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do
96     for arch in i386 amd64; do
97         rm -fr ${dist}-${arch}
98         (
99             if test ! -f /var/cache/pbuilder/${dist}-${arch}-base.tgz; then
100                 DIST=$dist ARCH=$arch pbuilder create
101             fi
102             if $update; then
103                 DIST=$dist ARCH=$arch pbuilder update --override-config
104             fi
105             DIST=$dist ARCH=$arch pbuilder --build $PKG
106             ) >${dist}-${arch}.log 2>&1 &
107         i=`expr $i + 1`
108         if test $i -eq $concurrency; then
109             i=0
110             wait
111         fi
112     done
113 done
114 wait
115 for dist in ${DEBIAN_DIST} ${UBUNTU_DIST}; do
116     for arch in i386 amd64; do
117         
118         if test -f ${dist}-${arch}/*.dsc; then
119             :
120         else
121             echo "No .dsc file for ${dist}-${arch}"
122             exit 1
123         fi
124     done
125 done
126 date
127 echo "Done"
128 # Local Variables:
129 # mode:shell-script
130 # sh-indentation: 2
131 # sh-basic-offset: 4
132 # End: