]> TLD Linux GIT Repositories - tld-builder.git/blob - client/kde4send2builders.sh
- from https://github.com/pld-linux/pld-builder.new
[tld-builder.git] / client / kde4send2builders.sh
1 #!/bin/sh
2 # Authors:
3 # - Bartosz Świątek (shadzik@pld-linux.org)
4 # - Elan Ruusamäe (glen@pld-linux.org)
5 #
6 # helps sending kde4 specs in proper order with or without autotags
7
8 usage() {
9         echo "Usage: $0 OPTIONS SPECS"
10         echo ""
11         echo "Where OPTIONS are:"
12         echo ""
13         echo "  -d   --distro VALUE"
14         echo "     set distro, probably th or ti will fit the most"
15         echo "  -at  --with-auto-tag"
16         echo "     send with current autotag, default no"
17         echo "  -b   --builder VALUE"
18         echo "     choose a particular builder, default all"
19         echo "  -p   --priority VALUE (default: 2)"
20         echo "  -h   --help"
21         echo "     show this help"
22         echo ""
23         echo "Choose SPECS out of:"
24         echo ""
25         echo "all - all kde4-* (libs, base, other, koffice, l10n)"
26         echo "libs - kde4-kdelibs and kde4-kdepimlibs"
27         echo "base - kde4-kdebase* kde4-oxygen-icons"
28         echo "other - all other kde4-* except libs and base"
29         echo "koffice - kde4-koffice"
30         echo "l10n - kde4-l10n"
31         echo "kdevelop - kde4-devplatform, kde4-kdevelop-*"
32         echo "almost-all - all but koffice and l10n"
33         echo ""
34         exit 0
35 }
36
37 DIST=
38 ATAG=no
39 SENDPRIO=
40 BUILDER=
41 PRIO=2
42 #SPECDIR=$(rpm -E %_specdir)
43 SPECDIR=~/rpm
44
45 LIBS="kde4-kdelibs.spec kde4-kdepimlibs.spec"
46 BASE="kde4-oxygen-icons.spec kde4-kdebase-runtime.spec kde4-kdebase-workspace.spec kde4-kwebkitpart.spec kde4-kdebase.spec"
47 OTHER="kde4-kdemultimedia.spec kde4-kdegraphics.spec \
48 kde4-kdenetwork.spec \
49 kde4-kdepim.spec \
50 kde4-kdepim-runtime.spec \
51 kde4-kdeartwork.spec \
52 kde4-kdewebdev.spec \
53 kde4-kdeutils.spec \
54 kde4-kdeaccessibility.spec \
55 kde4-kdebindings.spec \
56 kde4-kdegames.spec \
57 kde4-kdeedu.spec \
58 kde4-kdeplasma-addons.spec \
59 kde4-kdesdk.spec \
60 kde4-kdeadmin.spec \
61 kde4-kdetoys.spec"
62 KOFFICE="kde4-koffice.spec kde4-koffice-l10n.spec"
63 L10N="kde4-l10n.spec"
64 KDEVELOP="kde4-kdevplatform.spec \
65 kde4-kdevelop.spec
66 kde4-kdevelop-plugin-php.spec"
67
68 while [ $# -gt 0 ]; do
69         case "$1" in
70                 --distro | -d )
71                         DIST=$2
72                         shift
73                         ;;
74
75                 --with-auto-tag | -at )
76                         ATAG=yes
77                         ;;
78
79                 --builder | -b )
80                         BUILDER="$BUILDER $2"
81                         shift
82                         ;;
83                 
84                 --priority | -p )
85                         PRIO=$2
86                         shift
87                         ;;
88
89                 --help | -h )
90                         usage
91                         ;;
92
93                 -* )
94                         die "Unknow option: $1"
95                         ;;
96
97                 *:* | * )
98                         specs="$specs $1"
99                         ;;
100         esac
101         shift
102 done
103
104 specs=`for s in $specs; do
105         case "$s" in
106         all) # all kde4 specs
107                         echo $LIBS $BASE $OTHER $KOFFICE $L10N
108                         ;;
109         libs) # kde4 libs, libs-experimental and pimlibs
110                         echo $LIBS
111                         ;;
112         base) # kde4-kdebase-*
113                         echo $BASE
114                         ;;
115         other) # kde4-*
116                         echo $OTHER
117                         ;;
118         koffice) # kde4-koffice
119                         echo $KOFFICE
120                         ;;
121         l10n) # kde4-l10n
122                         echo $L10N
123                         ;;
124         kdevelop) # kde4-kdevplatform and kde4-kdevelop-*
125                         echo $KDEVELOP
126                         ;;
127         almost-all) # all but koffice and l10n
128                         echo $LIBS $BASE $OTHER
129                         ;;
130         *) # not listed ones
131                         echo $s
132                         ;;
133         esac
134 done`
135
136 if [ "$DIST" == "ti-dev" ]; then
137        disttag="ti"
138 else
139        disttag=$DIST
140 fi
141
142 if [ "$ATAG" == "yes" ]; then
143         for spec in $specs; do
144                 PKG=$(echo $spec |sed -e 's/.spec//g')
145                 LAST_AUTOTAG=$(cd $SPECDIR/packages && ./builder -g -ns $PKG/$spec >/dev/null 2>&1 && cvs status -v $PKG/$spec | awk -vdist=$disttag '!/Sticky/ && $1 ~ "^auto-" dist "-"{if (!a++) print $1}')
146                 sleep 1
147                 SENDPRIO="$SENDPRIO $spec:$LAST_AUTOTAG "
148         done
149 else
150         SENDPRIO=$specs
151 fi
152
153 dir=$(dirname "$0")
154 exec $dir/make-request.sh ${DIST:+-d $DIST} ${BUILDER:+-b "$BUILDER"} -p $PRIO -r $SENDPRIO
155 echo >&2 "Failed to execute ./make-request.sh!"
156 exit 1