@@ -70,7 +70,9 @@ filter=("extra")
7070maintainers=()
7171packages=()
7272ignore=()
73-
73+ skipped_packages=()
74+ rebuilt_packages=()
75+ released_packages=()
7476
7577if ! (( ${# } )) ; then
7678 usage
@@ -147,7 +149,17 @@ done
147149TMPDIR=$( mktemp -d /var/tmp/contrib-rebuild.XXXX) || exit 1
148150trap " rm -rf ${TMPDIR} " EXIT
149151
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+
150161if [[ " $URL " != " " ]]; then
162+ echo -e " Parsing packages list...\n"
151163 while read -r json; do
152164 readarray -t packages < <( jq --slurpfile repo <( printf ' "%s" ' " ${filter[@]} " ) \
153165 --slurpfile maint <( printf ' "%s" ' " ${maintainers[@]} " ) \
@@ -194,7 +206,7 @@ if ! ((${#packages[@]})); then
194206fi
195207echo " Rebuilding packages:"
196208printf ' %s\n' " ${packages[@]} "
197- printf " Confirm... "
209+ printf " Press enter to confirm "
198210read < & 1
199211
200212pkgctl repo clone " ${packages[@]} "
@@ -214,7 +226,10 @@ for pkg in "${packages[@]}"; do
214226 SKIP_BUILD=0
215227 while true ; do
216228 if pkgctl build --rebuild $REPO ; then
229+ rebuilt_packages+=(" $pkg " )
217230 break
231+ else
232+ skipped_packages+=(" $pkg " )
218233 fi
219234 if (( SKIP_BROKEN)) ; then
220235 SKIP_BUILD=1
@@ -234,8 +249,26 @@ for pkg in "${packages[@]}"; do
234249 fi
235250 fi
236251 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
238256 fi
239257 fi
240258 popd & > /dev/null
241259done
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