]> git.pld-linux.org Git - projects/cleanbuild.git/blame - bin/multibuild
Add verbosity to build output what script is doing
[projects/cleanbuild.git] / bin / multibuild
CommitLineData
594c2998 1#!/bin/sh
2
48e09e8a 3b="$(echo -n -e '\033[1m')"
4B="$(echo -n -e '\033[22m')"
e6c7a0dc 5r="$(echo -n -e '\033[31m')"
6g="$(echo -n -e '\033[32m')"
48e09e8a 7c="$(echo -n -e '\033[33m')"
8e="$(echo -n -e '\033[0m')"
9
e6c7a0dc 10ignore() { }
11MULTI_CONTINUE=false
12[ -r .cleanbuildrc ] && . ./.cleanbuildrc
13
594c2998 14[ -d mbuild ] || mkdir mbuild
15
16end_pkg()
17{
18 result=fail
19 [ $ret -eq 0 ] && result=ok
20 mv mbuild/start.$package mbuild/$result.$package
21}
22
e6c7a0dc 23get_pkg()
594c2998 24{
e6c7a0dc 25 list="$1"
594c2998 26 package=""
e6c7a0dc 27 [ -r $list ] || return
48e09e8a 28 while read pkg info; do
594c2998 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
e6c7a0dc 35 done < $list
36}
37
38
39next_pkg()
40{
41 get_pkg blist
42
43 [ -n "$package" ] && return
44
45 get_pkg blist2
594c2998 46
47 if [ -z "$package" ]; then
48e09e8a 48 echo "${c}Nothing to build${e}"
594c2998 49 exit
50 fi
51}
52
53./clean "$@"
54package=
55next_pkg
56build="cleanbuild"
594c2998 57while true; do
48e09e8a 58 time ./$build "$@" $package
594c2998 59 ret=$?
60
48e09e8a 61 OLDPWD="$PWD"
62 cd $HOME/rpm/packages/$package
e6c7a0dc 63 DIFF="$(cvs -z3 diff -u $package.spec)"
64 echo "$DIFF" | colordiff
48e09e8a 65 cd $OLDPWD
66
e6c7a0dc 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
594c2998 83
84 while true; do
48e09e8a 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} "
594c2998 90
91 read ans
92 case "x$ans" in
48e09e8a 93 x[rR])
594c2998 94 build="cleanbuild"
95 ;;
96 x[bB])
97 build="build"
98 ;;
48e09e8a 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)
594c2998 129 ./clean "$@"
48e09e8a 130 end_pkg
131 exec $0 "$@"
132 exit
133 ;;
134 xn)
135 echo "upper case N required"
136 continue
594c2998 137 ;;
138 x[qQ])
48e09e8a 139 ./clean "$@"
594c2998 140 end_pkg
141 exit
142 ;;
594c2998 143 *)
144 continue
145 ;;
146 esac
594c2998 147 break
148 done
594c2998 149done
150
151# vim: ts=4:sw=4
This page took 0.558713 seconds and 4 git commands to generate.