@@ -70,7 +70,9 @@ filter=("extra")
70
70
maintainers=()
71
71
packages=()
72
72
ignore=()
73
-
73
+ skipped_packages=()
74
+ rebuilt_packages=()
75
+ released_packages=()
74
76
75
77
if ! (( ${# } )) ; then
76
78
usage
@@ -147,7 +149,17 @@ done
147
149
TMPDIR=$( mktemp -d /var/tmp/contrib-rebuild.XXXX) || exit 1
148
150
trap " rm -rf ${TMPDIR} " EXIT
149
151
152
+ remove_from_rebuilt_packages_list () {
153
+ local element=$1
154
+ for i in " ${! rebuilt_packages[@]} " ; do
155
+ if [[ " ${rebuilt_packages[i]} " == " $element " ]]; then
156
+ unset ' rebuilt_packages[i]'
157
+ fi
158
+ done
159
+ }
160
+
150
161
if [[ " $URL " != " " ]]; then
162
+ echo -e " Parsing packages list...\n"
151
163
while read -r json; do
152
164
readarray -t packages < <( jq --slurpfile repo <( printf ' "%s" ' " ${filter[@]} " ) \
153
165
--slurpfile maint <( printf ' "%s" ' " ${maintainers[@]} " ) \
@@ -194,7 +206,7 @@ if ! ((${#packages[@]})); then
194
206
fi
195
207
echo " Rebuilding packages:"
196
208
printf ' %s\n' " ${packages[@]} "
197
- printf " Confirm... "
209
+ printf " Press enter to confirm "
198
210
read < & 1
199
211
200
212
pkgctl repo clone " ${packages[@]} "
@@ -214,7 +226,10 @@ for pkg in "${packages[@]}"; do
214
226
SKIP_BUILD=0
215
227
while true ; do
216
228
if pkgctl build --rebuild $REPO ; then
229
+ rebuilt_packages+=(" $pkg " )
217
230
break
231
+ else
232
+ skipped_packages+=(" $pkg " )
218
233
fi
219
234
if (( SKIP_BROKEN)) ; then
220
235
SKIP_BUILD=1
@@ -234,8 +249,26 @@ for pkg in "${packages[@]}"; do
234
249
fi
235
250
fi
236
251
if ! (( NO_PUBLISH)) ; then
237
- pkgctl release --db-update $REPO -m " $message "
252
+ if pkgctl release --db-update $REPO -m " $message " ; then
253
+ remove_from_rebuilt_packages_list " $pkg "
254
+ released_packages+=(" $pkg " )
255
+ fi
238
256
fi
239
257
fi
240
258
popd & > /dev/null
241
259
done
260
+
261
+ if (( ${# skipped_packages[@]} )) ; then
262
+ echo -e " \nSkipped packages (failed to build):"
263
+ printf ' %s\n' " ${skipped_packages[@]} "
264
+ fi
265
+
266
+ if (( ${# rebuilt_packages[@]} )) ; then
267
+ echo -e " \nRebuilt packages (but not released):"
268
+ printf ' %s\n' " ${rebuilt_packages[@]} "
269
+ fi
270
+
271
+ if (( ${# released_packages[@]} )) ; then
272
+ echo -e " \nReleased packages:"
273
+ printf ' %s\n' " ${released_packages[@]} "
274
+ fi
0 commit comments