]> git.pld-linux.org Git - projects/cleanbuild.git/blob - multibuild
run findbr inside container
[projects/cleanbuild.git] / multibuild
1 #!/bin/sh
2
3 b="$(echo -n -e '\033[1m')"
4 B="$(echo -n -e '\033[22m')"
5 r="$(echo -n -e '\033[31m')"
6 g="$(echo -n -e '\033[32m')"
7 c="$(echo -n -e '\033[33m')"
8 e="$(echo -n -e '\033[0m')"
9
10 ignore() { }
11 MULTI_CONTINUE=false
12 [ -r .cleanbuildrc ] && . ./.cleanbuildrc
13
14 [ -d mbuild ] || mkdir mbuild
15
16 end_pkg()
17 {
18         result=fail
19         [ $ret -eq 0 ] && result=ok
20         mv mbuild/start.$package mbuild/$result.$package
21 }
22
23 get_pkg()
24 {
25         list="$1"
26         package=""
27         [ -r $list ] || return
28         while read pkg info; do
29                 if [ ! -r mbuild/ok.$pkg ] && [ ! -r mbuild/fail.$pkg ] \
30                                 && [ ! -r mbuild/start.$pkg ]; then
31                         package="$pkg"
32                         touch mbuild/start.$package
33                         break
34                 fi
35         done < $list
36 }
37
38
39 next_pkg()
40 {
41         get_pkg blist
42
43         [ -n "$package" ] && return
44
45         get_pkg blist2
46
47         if [ -z "$package" ]; then
48                 echo "${c}Nothing to build${e}"
49                 exit
50         fi
51 }
52
53 ./clean "$@"
54 package=
55 next_pkg
56 build="cleanbuild"
57 while true; do
58         time ./$build "$@" $package
59         ret=$?
60
61         OLDPWD="$PWD"
62         cd $HOME/rpm/packages/$package
63         DIFF="$(cvs -z3 diff -u $package.spec)"
64         echo "$DIFF" | colordiff
65         cd $OLDPWD
66
67         if [ $ret -eq 0 ]; then
68                 COLOR="$g"
69         else
70                 COLOR="$r"
71         fi
72         echo "$COLOR$package build finished with exit status $ret$e"
73
74         if $MULTI_CONTINUE && [ $ret -eq 0 -a -z "$DIFF" ]; then
75                 echo "Nothing changed: continuing\n"
76                 ./clean "$@"
77                 end_pkg
78                 exec $0 "$@"
79                 exit
80         fi
81
82         MULTI_CONTINUE=false
83
84         while true; do
85                 echo
86                 echo -n "${c}clean ${b}r${B}ebuild," "re${b}b${B}uild," \
87                         "${b}i${B}nstall," "${b}a${B}ddbr," \
88                         "${b}v${B}im," "${b}c${B}i," \
89                         "${b}l${B}og," "${b}N${B}ext ?${e} "
90
91                 read ans
92                 case "x$ans" in
93                         x[rR])
94                                 build="cleanbuild"
95                                 ;;
96                         x[bB])
97                                 build="build"
98                                 ;;
99                         x[iI])
100                                 echo -n "${c}install>${e} "
101                                 read pkg
102                                 ./install "$@" $pkg
103                                 echo "pkg installed with exit status $?"
104                                 continue
105                                 ;;
106                         x[aA])
107                                 echo -n "${c}br>${e} "
108                                 read pkg
109                                 ./install "$@" $pkg
110                                 echo "pkg installed with exit status $?"
111                                 [ $? == 0 ] && ./addbr $package $pkg "requested"
112                                 continue
113                                 ;;
114                         x[vV])
115                                 vim $HOME/rpm/packages/$package/$package.spec
116                                 continue
117                                 ;;
118                         x[cC])
119                                 cd $HOME/rpm/packages/
120                                 ./ci $package
121                                 cd -
122                                 continue
123                                 ;;
124                         x[lL])
125                                 vim buildlogs/$package
126                                 continue
127                                 ;;
128                         xN)
129                                 ./clean "$@"
130                                 end_pkg
131                                 exec $0 "$@"
132                                 exit
133                                 ;;
134                         xn)
135                                 echo "upper case N required"
136                                 continue
137                                 ;;
138                         x[qQ])
139                                 ./clean "$@"
140                                 end_pkg
141                                 exit
142                                 ;;
143                         *)
144                                 continue
145                                 ;;
146                 esac
147                 break
148         done
149 done
150
151 # vim: ts=4:sw=4
This page took 0.097559 seconds and 3 git commands to generate.