git-tools: concurrency for pbuilder builds SA-768
[git-tools-moved-to-github.git] / id-deb-build / id-pbuild-root.sh
1 #!/bin/sh
2 usage()
3 {
4     cat <<EOF
5 Usage: id-pbuild-root.sh [OPTIONS]
6 Options:
7         [--arch=architecture]
8         [--dist=distribution]
9         [--dsc=dscfile]
10         [--update=true|false]
11 EOF
12     exit $1
13 }
14 D0=`dirname $0`
15
16 do_help=false
17 update=true
18 while test $# -gt 0; do
19     case "$1" in
20         -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
21         *) optarg= ;;
22     esac
23     case $1 in
24         --dist=*)
25             DIST=$optarg
26             ;;
27         --arch=*)
28             ARCH=$optarg
29             ;;
30         --dsc=*)
31             DSC=$optarg
32             ;;
33         --update=*)
34             update=$optarg
35             ;;
36         -*)
37             do_help=yes
38             ;;
39     esac
40     shift
41 done
42 if test "$do_help" = "yes"; then
43     usage 1 1>&2
44 fi
45 if test -z "$DIST"; then
46     echo "id-pbuild-root.sh: missing --dist"
47     exit 1
48 fi
49 if test -z "$ARCH"; then
50     echo "id-pbuild-root.sh: missing --arch"
51     exit 1
52 fi
53 if test -z "$DSC"; then
54     echo "id-pbuild-root.sh: missing --dsc"
55     exit 1
56 fi
57 if test ! -x /usr/bin/lxc-attach; then
58     echo "No lxc-attach. Probably not running on mochi!!"
59     exit 1
60 fi
61 export DIST ARCH # export for pbuilder to see
62 echo "$DIST-$ARCH begin"
63 if $update; then
64     if ! lxc-attach -n pbuilder -- pbuilder --update --override-config >update-${DIST}-${ARCH}.log 2>&1; then
65         if ! lxc-attach -n pbuilder -- pbuilder --create >create-${DIST}-${ARCH}.log 2>&1; then
66             echo "$DIST-$ARCH failed. Inspect deb-src/create-${DIST}-${ARCH}.log"
67             exit 2
68         fi
69         if ! lxc-attach -n pbuilder -- pbuilder --update --override-config >update-${DIST}-${ARCH}.log 2>&1; then
70             echo "$DIST-$ARCH failed. Inspect deb-src/update-${DIST}-${ARCH}.log"
71            exit 2
72        fi
73    fi
74 fi
75 if ! lxc-attach -n pbuilder -- pbuilder --build $DSC >build-${DIST}-${ARCH}.log 2>&1; then
76     echo "$DIST-$ARCH failed. Inspect deb-src/build-${DIST}-${ARCH}.log"
77     exit 3
78 fi
79 echo "$DIST-$ARCH done"
80 exit 0
81
82 # Local Variables:
83 # mode:shell-script
84 # sh-indentation: 4
85 # sh-basic-offset: 4
86 # End:
87