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