]> git.pld-linux.org Git - projects/pld-builder.new.git/blame - client/make-request.sh
- count time in the RIGHT direction
[projects/pld-builder.new.git] / client / make-request.sh
CommitLineData
1344b6f1
MM
1#!/bin/sh
2
864cdeb5
MM
3builders=
4specs=
5with=
6without=
7flags=
8command=
9command_flags=
544ca060
MM
10
11if [ -f "$HOME/.requestrc" ]; then
12 . $HOME/.requestrc
13else
14 echo "Creating config file ~/.requestrc. You *must* edit it."
4c7c7bfd 15 cat >$HOME/.requestrc <<EOF
1344b6f1 16priority=2
544ca060
MM
17requester=deviloper
18default_key=deviloper@pld-linux.org
19builder_email=builder-ac@pld-linux.org
1344b6f1 20mailer="/usr/sbin/sendmail -t"
544ca060 21default_builders="ac-*"
1344b6f1 22
a757e911
MM
23# defaults:
24build_mode=ready
25f_upgrade=yes
26
544ca060
MM
27EOF
28exit
29fi
30
a757e911
MM
31die () {
32 echo "$0: $*" 1>&2
33 exit 1
34}
1344b6f1
MM
35
36while [ $# -gt 0 ] ; do
37 case "$1" in
a757e911 38 --builder | -b )
1344b6f1
MM
39 builders="$builders $2"
40 shift
41 ;;
c4aa0539 42
1344b6f1
MM
43 --with )
44 with="$with $2"
45 shift
46 ;;
47
48 --without )
49 without="$without $2"
50 shift
51 ;;
a757e911
MM
52
53 --test-build | -t )
54 build_mode=test
544ca060 55 f_upgrade=no
a757e911
MM
56 ;;
57
58 --ready-build | -r )
59 build_mode=ready
60 ;;
61
62 --upgrade | -u )
63 f_upgrade=yes
64 ;;
65
66 --no-upgrade | -n )
544ca060 67 f_upgrade=no
a757e911
MM
68 ;;
69
5d25d4e4
MM
70 --no-install-br | -ni )
71 flags="$flags no-install-br"
72 ;;
73
a757e911
MM
74 --flag | -f )
75 flags="$flags $2"
76 shift
77 ;;
c4aa0539
MM
78
79 --command-flags | -cf )
80 command_flags="$2"
81 shift
82 ;;
83
84 --command | -c )
85 command="$2"
86 shift
87 ;;
1344b6f1
MM
88
89 -* )
a757e911 90 die "unknown knob: $1"
1344b6f1 91 ;;
c4aa0539 92
1344b6f1
MM
93 *:* )
94 specs="$specs $1"
95 ;;
96
97 * )
98 specs="$specs $1:HEAD"
99 ;;
100 esac
101 shift
102done
103
104
a757e911
MM
105if [ "$builders" = "" ] ; then
106 builders="$default_builders"
107fi
108
544ca060 109if [ "$f_upgrade" = "yes" ] ; then
a757e911
MM
110 flags="$flags upgrade"
111fi
112
113if [ "$build_mode" = "test" ] ; then
544ca060 114 if [ "$f_upgrade" = "yes" ] ; then
a757e911
MM
115 die "--upgrade and --test-build are mutually exclusive"
116 fi
117 flags="$flags test-build"
1344b6f1
MM
118fi
119
280b1afd
MM
120ok=
121for s in $specs ; do
122 ok=1
123done
124
125if [ "$ok" = "" ] ; then
c4aa0539
MM
126 if [ "$command" = "" ] ; then
127 die "no specs passed"
128 fi
129else
130 if [ "$command" != "" ] ; then
131 die "cannot pass specs and --command"
132 fi
280b1afd
MM
133fi
134
1344b6f1
MM
135id=$(uuidgen)
136
137gen_req() {
a757e911 138 echo "<group id='$id' no='0' flags='$flags'>"
1344b6f1
MM
139 echo " <time>$(date +%s)</time>"
140 echo " <priority>$priority</priority>"
141 echo
142
c4aa0539
MM
143 if [ "$command" != "" ] ; then
144 bid=$(uuidgen)
145 echo " <batch id='$bid' depends-on=''>"
146 echo " <command flags='$command_flags'>$command</command>"
147 echo " <info></info>"
148 for b in $builders ; do
149 echo " <builder>$b</builder>"
150 done
151 echo " </batch>"
152 else
153
30dbf6a3
MM
154 # first id:
155 fid=
1344b6f1 156 for s in $specs ; do
30dbf6a3
MM
157 bid=$(uuidgen)
158 echo " <batch id='$bid' depends-on='$fid'>"
159 [ "$fid" = "" ] && fid="$bid"
1344b6f1
MM
160 name=$(echo "$s" | sed -e 's|:.*||')
161 branch=$(echo "$s" | sed -e 's|.*:||')
162 echo " <spec>$name</spec>"
163 echo " <branch>$branch</branch>"
864cdeb5 164 echo " <info></info>"
1344b6f1
MM
165 echo
166 for b in $with ; do
167 echo " <with>$b</with>"
168 done
169 for b in $without ; do
170 echo " <without>$b</without>"
171 done
172 echo
173 for b in $builders ; do
174 echo " <builder>$b</builder>"
175 done
176 echo " </batch>"
177 done
c4aa0539
MM
178
179 fi
30dbf6a3 180
1344b6f1
MM
181 echo "</group>"
182}
183
184gen_email () {
185cat <<EOF
186From: $requester@pld-linux.org
187To: $builder_email
188Subject: build request
189Message-Id: <$id@$(hostname)>
190X-New-PLD-Builder: request
191X-Requester-Version: $Id$
192
193$(gen_req | gpg --clearsign --default-key $default_key)
194EOF
195}
196
8454c165 197gen_email | $mailer
This page took 0.049836 seconds and 4 git commands to generate.