[PATCH v3 22/27] moveconfig: Show a summary at the end
Simon Glass
sjg at chromium.org
Sat Sep 23 21:44:11 CEST 2023
Rather than printing all the failed boards, which are now easily visible
on the terminal, just show a summary. Sort it by defconfig and drop the
'_defconfig' suffix.
Signed-off-by: Simon Glass <sjg at chromium.org>
---
(no changes since v1)
tools/moveconfig.py | 28 +++++++++++++++-------------
1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/tools/moveconfig.py b/tools/moveconfig.py
index 2a4badf8649a..c6d7c53f8b89 100755
--- a/tools/moveconfig.py
+++ b/tools/moveconfig.py
@@ -571,8 +571,8 @@ class Slot:
successfully, or False when it fails.
"""
# output at least 30 characters to hide the "* defconfigs out of *".
+ name = self.defconfig[:-len('_defconfig')]
if self.log:
- name = self.defconfig[:-len('_defconfig')]
# Put the first log line on the first line
log = name.ljust(20) + ' ' + self.log[0]
@@ -588,7 +588,7 @@ class Slot:
sys.exit('Exit on error.')
# If --exit-on-error flag is not set, skip this board and continue.
# Record the failed board.
- self.failed_boards.add(self.defconfig)
+ self.failed_boards.add(name)
self.progress.inc(success)
self.progress.show()
@@ -618,6 +618,7 @@ class Slots:
"""
self.args = args
self.slots = []
+ self.progress = progress
self.col = col
devnull = subprocess.DEVNULL
make_cmd = get_make_cmd()
@@ -662,8 +663,8 @@ class Slots:
ret = False
return ret
- def show_failed_boards(self):
- """Display all of the failed boards (defconfigs)."""
+ def show_result(self):
+ """Show the results of processing"""
boards = set()
output_file = 'moveconfig.failed'
@@ -671,14 +672,16 @@ class Slots:
boards |= slot.get_failed_boards()
if boards:
- boards = '\n'.join(boards) + '\n'
- msg = 'The following boards were not processed due to error:\n'
- msg += boards
- msg += f'(the list has been saved in {output_file})\n'
- print(self.col.build(self.col.RED, msg, bright=True),
- file=sys.stderr)
-
+ print(self.col.build(
+ self.col.RED,
+ f'{len(boards)} failed (see {output_file})', True))
+ boards = '\n'.join(sorted(boards)) + '\n'
write_file(output_file, boards)
+ else:
+ # Add enough spaces to overwrite the progress indicator
+ print(self.col.build(
+ self.col.GREEN,
+ f'{self.progress.total} processed ', bright=True))
class ReferenceSource:
@@ -757,8 +760,7 @@ def move_config(toolchains, args, db_queue, col):
while not slots.empty():
time.sleep(SLEEP_TIME)
- print('')
- slots.show_failed_boards()
+ slots.show_result()
def find_kconfig_rules(kconf, config, imply_config):
"""Check whether a config has a 'select' or 'imply' keyword
--
2.42.0.515.g380fc7ccd1-goog
More information about the U-Boot
mailing list