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