]> code.ossystems Code Review - openembedded-core.git/commitdiff
bitbake-dev: Refactor configuration file parsing
authorRob Bradford <rob@linux.intel.com>
Tue, 28 Oct 2008 11:27:58 +0000 (11:27 +0000)
committerRob Bradford <rob@linux.intel.com>
Tue, 28 Oct 2008 11:40:03 +0000 (11:40 +0000)
Separate the parsing of the configuration files / recipes into a separate
function to the parsing of the command line. This parsing of the configuration
files now happens when updateCache() is called.

Some functionality has been moved from parseConfiguration() to __init__.

bitbake-dev/lib/bb/cooker.py

index c9afadbc977b99498eaac409c94d619ec8a4b14e..6dde5de0f804407d60c0fa89c13f09125657deb2 100644 (file)
@@ -86,10 +86,31 @@ class BBCooker:
 
         self.configuration.data = bb.data.init()
 
-    def parseConfiguration(self):
-
         bb.data.inheritFromOS(self.configuration.data)
 
+        # TOSTOP must not be set or our children will hang when they output
+        fd = sys.stdout.fileno()
+        if os.isatty(fd):
+            import termios
+            tcattr = termios.tcgetattr(fd)
+            if tcattr[3] & termios.TOSTOP:
+                bb.msg.note(1, bb.msg.domain.Build, "The terminal had the TOSTOP bit set, clearing...")
+                tcattr[3] = tcattr[3] & ~termios.TOSTOP
+                termios.tcsetattr(fd, termios.TCSANOW, tcattr)
+
+        self.command = bb.command.Command(self)
+        self.cookerIdle = True
+        self.cookerState = cookerClean
+        self.cookerAction = cookerRun
+        self.server.register_idle_function(self.runCommands, self)
+
+    def parseConfiguration(self):
+        #
+        # Special updated configuration we use for firing events
+        #
+        self.configuration.event_data = bb.data.createCopy(self.configuration.data)
+        bb.data.update_data(self.configuration.event_data)
+
         for f in self.configuration.file:
             self.parseConfigurationFile( f )
 
@@ -102,29 +123,14 @@ class BBCooker:
         if bbpkgs:
             self.configuration.pkgs_to_build.extend(bbpkgs.split())
 
-        #
-        # Special updated configuration we use for firing events
-        #
-        self.configuration.event_data = bb.data.createCopy(self.configuration.data)
-        bb.data.update_data(self.configuration.event_data)
-
-        # TOSTOP must not be set or our children will hang when they output
-        fd = sys.stdout.fileno()
-        if os.isatty(fd):
-            import termios
-            tcattr = termios.tcgetattr(fd)
-            if tcattr[3] & termios.TOSTOP:
-                bb.msg.note(1, bb.msg.domain.Build, "The terminal had the TOSTOP bit set, clearing...")
-                tcattr[3] = tcattr[3] & ~termios.TOSTOP
-                termios.tcsetattr(fd, termios.TCSANOW, tcattr)
-
         # Change nice level if we're asked to
         nice = bb.data.getVar("BB_NICE_LEVEL", self.configuration.data, True)
         if nice:
             curnice = os.nice(0)
             nice = int(nice) - curnice
             bb.msg.note(2, bb.msg.domain.Build, "Renice to %s " % os.nice(nice))
+
+    def parseCommandLine(self):
         # Parse any commandline into actions
         if self.configuration.show_environment:
             self.commandlineAction = None
@@ -156,17 +162,6 @@ class BBCooker:
                 self.commandlineAction = None
                 bb.error("Nothing to do.  Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.")
 
-        # FIXME - implement
-        #if self.configuration.interactive:
-        #    self.interactiveMode()
-
-        self.command = bb.command.Command(self)
-        self.cookerIdle = True
-        self.cookerState = cookerClean
-        self.cookerAction = cookerRun
-        self.server.register_idle_function(self.runCommands, self)
-
-
     def runCommands(self, server, data, abort):
         """
         Run any queued asynchronous command
@@ -731,6 +726,7 @@ class BBCooker:
 
     def updateCache(self):
 
+        self.parseConfiguration ()
         if self.cookerState == cookerParsed:
             return