From 4efef998cda69edb162ea61e4a14f564133457d1 Mon Sep 17 00:00:00 2001 From: Masahiro Yamada Date: Thu, 19 May 2016 15:52:03 +0900 Subject: [PATCH] tools: moveconfig: refactor code to go back to idle state Move similar code to finish() function. Signed-off-by: Masahiro Yamada Reviewed-by: Joe Hershberger --- tools/moveconfig.py | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/tools/moveconfig.py b/tools/moveconfig.py index 5906bd03f6..84ad16d876 100755 --- a/tools/moveconfig.py +++ b/tools/moveconfig.py @@ -632,13 +632,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: @@ -656,21 +650,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) @@ -683,11 +670,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' @@ -695,9 +683,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. -- 2.39.5