[PATCH v3 18/27] moveconfig: Reduce the amount of output

Simon Glass sjg at chromium.org
Sat Sep 23 21:44:07 CEST 2023


Output a single line in the case where the defconfig only has one line
of output. Show the name without the _defconfig suffix, since that is the
same for all boards.

Use a list for the log so it is easier to process at the end.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

(no changes since v1)

 tools/moveconfig.py | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/tools/moveconfig.py b/tools/moveconfig.py
index 568386f7b9d0..9d228720c739 100755
--- a/tools/moveconfig.py
+++ b/tools/moveconfig.py
@@ -410,7 +410,7 @@ class Slot:
         self.state = STATE_IDLE
         self.failed_boards = set()
         self.defconfig = None
-        self.log = ''
+        self.log = []
         self.current_src_dir = None
         self.proc = None
 
@@ -446,7 +446,7 @@ class Slot:
             return False
 
         self.defconfig = defconfig
-        self.log = ''
+        self.log = []
         self.current_src_dir = self.reference_src_dir
         self.do_defconfig()
         return True
@@ -498,11 +498,12 @@ class Slot:
     def handle_error(self):
         """Handle error cases."""
 
-        self.log += color_text(self.args.color, COLOR_LIGHT_RED,
-                               'Failed to process.\n')
+        self.log.append(color_text(self.args.color, COLOR_LIGHT_RED,
+                                   'Failed to process'))
         if self.args.verbose:
-            self.log += color_text(self.args.color, COLOR_LIGHT_CYAN,
-                                   self.proc.stderr.read().decode())
+            for line in self.proc.stderr.read().decode().splitlines():
+                self.log.append(color_text(self.args.color, COLOR_LIGHT_CYAN,
+                                           line))
         self.finish(False)
 
     def do_defconfig(self):
@@ -522,8 +523,8 @@ class Slot:
         try:
             tchain = self.toolchains.Select(arch)
         except ValueError:
-            self.log += color_text(self.args.color, COLOR_YELLOW,
-                    f"Tool chain for '{arch}' is missing.  Do nothing.\n")
+            self.log.append(color_text(self.args.color, COLOR_YELLOW,
+                    f"Tool chain for '{arch}' is missing: do nothing"))
             self.finish(False)
             return
         env = tchain.MakeEnvironment(False)
@@ -565,8 +566,8 @@ class Slot:
         updated = not filecmp.cmp(orig_defconfig, new_defconfig)
 
         if updated:
-            self.log += color_text(self.args.color, COLOR_LIGHT_BLUE,
-                                   'defconfig was updated.\n')
+            self.log.append(color_text(self.args.color, COLOR_LIGHT_BLUE,
+                                       'defconfig updated'))
 
         if not self.args.dry_run and updated:
             shutil.move(new_defconfig, orig_defconfig)
@@ -581,9 +582,13 @@ class Slot:
         """
         # output at least 30 characters to hide the "* defconfigs out of *".
         if self.log:
-            log = self.defconfig.ljust(30) + '\n'
+            name = self.defconfig[:-len('_defconfig')]
 
-            log += '\n'.join([ '    ' + s for s in self.log.split('\n') ])
+            # Put the first log line on the first line
+            log = name.ljust(20) + ' ' + self.log[0]
+
+            if len(self.log) > 1:
+                log += '\n' + '\n'.join(['    ' + s for s in self.log[1:]])
             # Some threads are running in parallel.
             # Print log atomically to not mix up logs from different threads.
             print(log, file=(sys.stdout if success else sys.stderr))
-- 
2.42.0.515.g380fc7ccd1-goog



More information about the U-Boot mailing list