[U-Boot] [PATCH v2 1/2] tools: moveconfig: Make the slot processing more linear
Joe Hershberger
joe.hershberger at ni.com
Thu Jun 2 05:30:06 CEST 2016
Make the processing of a slot more linear code compared to how it
executes.
Signed-off-by: Joe Hershberger <joe.hershberger at ni.com>
---
Changes in v2:
- New for v2
tools/moveconfig.py | 59 +++++++++++++++++++++++++++++++----------------------
1 file changed, 35 insertions(+), 24 deletions(-)
diff --git a/tools/moveconfig.py b/tools/moveconfig.py
index 2d29e1b..01350ce 100755
--- a/tools/moveconfig.py
+++ b/tools/moveconfig.py
@@ -197,9 +197,10 @@ CROSS_COMPILE = {
}
STATE_IDLE = 0
-STATE_DEFCONFIG = 1
-STATE_AUTOCONF = 2
-STATE_SAVEDEFCONFIG = 3
+STATE_INIT = 1
+STATE_DEFCONFIG = 2
+STATE_AUTOCONF = 3
+STATE_SAVEDEFCONFIG = 4
ACTION_MOVE = 0
ACTION_NO_ENTRY = 1
@@ -633,12 +634,9 @@ class Slot:
"""
if self.state != STATE_IDLE:
return False
- cmd = list(self.make_cmd)
- cmd.append(defconfig)
- self.ps = subprocess.Popen(cmd, stdout=self.devnull,
- stderr=subprocess.PIPE)
+ self.ps = None
self.defconfig = defconfig
- self.state = STATE_DEFCONFIG
+ self.state = STATE_INIT
self.log = ''
return True
@@ -661,6 +659,14 @@ class Slot:
if self.state == STATE_IDLE:
return True
+ if self.state == STATE_INIT:
+ cmd = list(self.make_cmd)
+ cmd.append(self.defconfig)
+ self.ps = subprocess.Popen(cmd, stdout=self.devnull,
+ stderr=subprocess.PIPE)
+ self.state = STATE_DEFCONFIG
+ return False
+
if self.ps.poll() == None:
return False
@@ -673,6 +679,24 @@ class Slot:
self.finish(False)
return True
+ if self.state == STATE_DEFCONFIG:
+ 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.finish(False)
+ return True
+
+ cmd = list(self.make_cmd)
+ if self.cross_compile:
+ cmd.append('CROSS_COMPILE=%s' % self.cross_compile)
+ cmd.append('KCONFIG_IGNORE_DUPLICATES=1')
+ cmd.append('include/config/auto.conf')
+ self.ps = subprocess.Popen(cmd, stdout=self.devnull,
+ stderr=subprocess.PIPE)
+ self.state = STATE_AUTOCONF
+ return False
+
if self.state == STATE_AUTOCONF:
(updated, log) = self.parser.update_dotconfig()
self.log += log
@@ -708,22 +732,9 @@ class Slot:
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.finish(False)
- return True
-
- cmd = list(self.make_cmd)
- if self.cross_compile:
- cmd.append('CROSS_COMPILE=%s' % self.cross_compile)
- cmd.append('KCONFIG_IGNORE_DUPLICATES=1')
- cmd.append('include/config/auto.conf')
- self.ps = subprocess.Popen(cmd, stdout=self.devnull,
- stderr=subprocess.PIPE)
- self.state = STATE_AUTOCONF
- return False
+ # Undefined state!
+ self.finish(False)
+ return True
def finish(self, success):
"""Display log along with progress and go to the idle state.
--
1.7.11.5
More information about the U-Boot
mailing list