]> TLD Linux GIT Repositories - packages/rpm-build-tools.git/blob - kde4send2builders.sh
- allow build if requested tag matches current head
[packages/rpm-build-tools.git] / kde4send2builders.sh
1 #!/bin/sh
2 # Authors:
3 # - Bartosz Świątek (shadzik@tld-linux.org)
4 #
5 # helps sending kde4 specs in proper order with or without autotags
6
7 usage() {
8         echo "Usage: $0 OPTIONS SPECS"
9         echo ""
10         echo "Where OPTIONS are:"
11         echo ""
12         echo "  -d   --distro VALUE"
13         echo "     set distro, probably th or ti will fit the most"
14         echo "  -at  --with-auto-tag"
15         echo "     send with current autotag, default no"
16         echo "  -b   --builder VALUE"
17         echo "     choose a particular builder, default all"
18         echo "  -p   --priority VALUE (default: 2)"
19         echo "  -s   --skip-fetch-tags (default: no)"
20         echo "     skip git fetch --tags when getting autotag"
21         echo "  -h   --help"
22         echo "     show this help"
23         echo ""
24         echo "Choose SPECS out of:"
25         echo ""
26         echo "all - all * (libs, base, other, koffice, l10n)"
27         echo "libs - kdelibs and kdepimlibs"
28         echo "base - kdebase* oxygen-icons"
29         echo "other - all other * except libs and base"
30         echo "koffice - koffice"
31         echo "l10n - l10n"
32         echo "kdevelop - devplatform, kdevelop-*"
33         echo "almost-all - all but koffice and l10n"
34         echo ""
35         exit 0
36 }
37
38 DIST=
39 ATAG=no
40 SENDPRIO=
41 BUILDER=
42 PRIO=2
43 SKIPFETCHTAGS=0
44 #SPECDIR=$(rpm -E %_specdir)
45 SPECDIR=~/rpm
46
47 LIBS="kdelibs.spec kdepimlibs.spec"
48 BASE="kactivities oxygen-icons.spec kde-workspace.spec kde-runtime.spec kde-baseapps.spec kde-wallpapers.spec"
49 OTHER="jovie.spec \
50 kaccessible.spec \
51 kmouth.spec \
52 kmousetool.spec \
53 kmag.spec \
54 ark.spec \
55 filelight.spec \
56 kcalc.spec \
57 kcharselect.spec \
58 kdf.spec \
59 kfloppy.spec \
60 kgpg.spec \
61 kremotecontrol.spec \
62 ktimer.spec \
63 kwallet.spec \
64 superkaramba.spec \
65 sweeper.spec \
66 python-PyKDE4.spec \
67 kdeadmin.spec \
68 libkexiv2.spec \
69 kdeartwork.spec \
70 kdegames.spec \
71 kdemultimedia.spec \
72 kdenetwork.spec \
73 kdepim-runtime.spec \
74 kdepim.spec 
75 marble.spec \
76 kdeplasma-addons.spec \
77 kdewebdev.spec \
78 libkdcraw.spec \
79 libkdeedu.spec \
80 libkipi.spec \
81 libksane.spec \
82 gwenview.spec \
83 analitza.spec \
84 kalgebra.spec \
85 kamera.spec \
86 kate.spec \
87 kcolorchooser.spec \
88 kgamma.spec \
89 kolourpaint.spec \
90 konsole.spec \
91 kruler.spec \
92 ksnapshot.spec \
93 okular.spec \
94 kdegraphics-mobipocket.spec \
95 kdegraphics-strigi-analyzer.spec \
96 kdegraphics-thumbnailers.spec \
97 svgpart.spec \
98 ksaneplugin.spec \
99 kdetoys.spec"
100 KOFFICE="koffice.spec koffice-l10n.spec"
101 L10N="l10n.spec"
102 KDEVELOP="kdevplatform.spec \
103 kdevelop.spec
104 kdevelop-plugin-php.spec"
105
106 while [ $# -gt 0 ]; do
107         case "$1" in
108                 --distro | -d )
109                         DIST=$2
110                         shift
111                         ;;
112
113                 --with-auto-tag | -at )
114                         ATAG=yes
115                         ;;
116
117                 --builder | -b )
118                         BUILDER="$BUILDER $2"
119                         shift
120                         ;;
121                 
122                 --priority | -p )
123                         PRIO=$2
124                         shift
125                         ;;
126                 
127                 --skip-fetch-tags | -s )
128                         SKIPFETCHTAGS=1
129                         ;;
130
131                 --help | -h )
132                         usage
133                         ;;
134
135                 -* )
136                         die "Unknow option: $1"
137                         ;;
138
139                 *:* | * )
140                         specs="$specs $1"
141                         ;;
142         esac
143         shift
144 done
145
146 specs=`for s in $specs; do
147         case "$s" in
148         all) # all kde4 specs
149                         echo $LIBS $BASE $OTHER $KOFFICE $L10N
150                         ;;
151         libs) # kde4 libs, libs-experimental and pimlibs
152                         echo $LIBS
153                         ;;
154         base) # kdebase-*
155                         echo $BASE
156                         ;;
157         other) # *
158                         echo $OTHER
159                         ;;
160         koffice) # koffice
161                         echo $KOFFICE
162                         ;;
163         l10n) # l10n
164                         echo $L10N
165                         ;;
166         kdevelop) # kdevplatform and kdevelop-*
167                         echo $KDEVELOP
168                         ;;
169         almost-all) # all but koffice and l10n
170                         echo $LIBS $BASE $OTHER
171                         ;;
172         *) # not listed ones
173                         echo $s
174                         ;;
175         esac
176 done`
177
178 if [ "$DIST" == "ti-dev" ]; then
179         disttag="ti"
180 else
181         disttag=$DIST
182 fi
183
184 if [ "$ATAG" == "yes" ]; then
185         for spec in $specs; do
186                 PKG=$(echo $spec |sed -e 's/.spec//g')
187                 if [ ! -d $PKG ]; then
188                         git clone git@git.tld-linux.org:packages/${PKG}
189                 fi
190                 if [ $SKIPFETCHTAGS -lt 1 ]; then
191                         LAST_AUTOTAG=$(cd $PKG && git fetch -q --tags && git tag |tail -n 1)
192                 else
193                         LAST_AUTOTAG=$(cd $PKG && git tag |tail -n 1)
194                 fi
195                 sleep 1
196                 SENDPRIO="$SENDPRIO $spec:$LAST_AUTOTAG "
197         done
198 else
199         SENDPRIO=$specs
200 fi
201
202 dir=$(dirname "$0")
203 exec sh $dir/make-request.sh ${DIST:+-d $DIST} ${BUILDER:+-b "$BUILDER"} -p $PRIO -r $SENDPRIO
204 echo >&2 "Failed to execute ./make-request.sh!"
205 exit 1