[U-Boot] [PATCH 15/21] tools: moveconfig: refactor code to go back to idle state
Masahiro Yamada
yamada.masahiro at socionext.com
Thu May 19 08:52:03 CEST 2016
Move similar code to finish() function.
Signed-off-by: Masahiro Yamada <yamada.masahiro at socionext.com>
---
tools/moveconfig.py | 37 +++++++++++++++++--------------------
1 file changed, 17 insertions(+), 20 deletions(-)
diff --git a/tools/moveconfig.py b/tools/moveconfig.py
index cf4004f..da7120d 100755
--- a/tools/moveconfig.py
+++ b/tools/moveconfig.py
@@ -664,13 +664,7 @@ class Slot:
if self.options.verbose:
self.log += color_text(self.options.color, COLOR_LIGHT_CYAN,
self.ps.stderr.read())
- self.show_log(sys.stderr)
- if self.options.exit_on_error:
- 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.append(self.defconfig)
- self.state = STATE_IDLE
+ self.finish(False)
return True
if self.state == STATE_AUTOCONF:
@@ -688,21 +682,14 @@ class Slot:
if not self.options.dry_run:
shutil.move(os.path.join(self.build_dir, 'defconfig'),
os.path.join('configs', self.defconfig))
- self.show_log()
- self.state = STATE_IDLE
+ self.finish(True)
return True
self.cross_compile = self.parser.get_cross_compile()
if self.cross_compile is None:
self.log += color_text(self.options.color, COLOR_YELLOW,
"Compiler is missing. Do nothing.\n")
- self.show_log(sys.stderr)
- if self.options.exit_on_error:
- 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.append(self.defconfig)
- self.state = STATE_IDLE
+ self.finish(False)
return True
cmd = list(self.make_cmd)
@@ -715,11 +702,12 @@ class Slot:
self.state = STATE_AUTOCONF
return False
- def show_log(self, file=sys.stdout):
- """Display log along with progress.
+ def finish(self, success):
+ """Display log along with progress and go to the idle state.
Arguments:
- file: A file object to which the log string is sent.
+ success: Should be True when the defconfig was processed
+ successfully, or False when it fails.
"""
# output at least 30 characters to hide the "* defconfigs out of *".
log = self.defconfig.ljust(30) + '\n'
@@ -727,9 +715,18 @@ class Slot:
log += '\n'.join([ ' ' + s for s in self.log.split('\n') ])
# Some threads are running in parallel.
# Print log atomically to not mix up logs from different threads.
- print >> file, log
+ print >> (sys.stdout if success else sys.stderr), log
+
+ if not success:
+ if self.options.exit_on_error:
+ 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.append(self.defconfig)
+
self.progress.inc()
self.progress.show()
+ self.state = STATE_IDLE
def get_failed_boards(self):
"""Returns a list of failed boards (defconfigs) in this slot.
--
1.9.1
More information about the U-Boot
mailing list