Add a instance of ConfigReader as an oeconf object in oeparser.py, thereby giving...
authorChris Larson <clarson@kergoth.com>
Mon, 9 Jun 2003 17:56:21 +0000 (17:56 +0000)
committerChris Larson <clarson@kergoth.com>
Mon, 9 Jun 2003 17:56:21 +0000 (17:56 +0000)
bin/oeparser.py
bin/parse

index 4ae0b31..e769985 100644 (file)
@@ -181,6 +181,7 @@ class ConfigReader(FileReader):
 
 class PackageReader(ConfigReader):
        """Reads an OpenEmbedded format package metadata file"""
+       global oeconf
 
        def __init__(self, filename = ""):
                # regular expressions
@@ -195,8 +196,9 @@ class PackageReader(ConfigReader):
 
                ConfigReader.__init__(self, filename)
 
-               # need access to global OE config data
-               self.cfgenv = self.env
+               # default the config var expansion to the global cfg data
+               self.cfgenv = oeconf.env
+               self.cfgenvflags = oeconf.envflags
 
        def classname(self, fn):
                (base, ext) = os.path.splitext(os.path.basename(fn))
@@ -204,13 +206,23 @@ class PackageReader(ConfigReader):
 
        def getCfgEnv(self):
                """Returns config 'env' data"""
-               return self.__config
+               return self.__cfgenv
 
        def setCfgEnv(self, cfgenv):
                """Sets config 'env' data"""
-               self.__config = cfgenv
+               self.__cfgenv = cfgenv
 
-       cfgenv = property(getCfgEnv, setCfgEnv, None, "CfgEnv property")
+       cfgenv = property(getCfgEnv, setCfgEnv, None, "cfgenv property")
+
+       def getCfgEnvFlags(self):
+               """Returns config 'envflags' data"""
+               return self.__cfgenvflags
+
+       def setCfgEnvFlags(self, cfgenvflags):
+               """Sets config 'envflags' data"""
+               self.__cfgenvflags = cfgenvflags
+
+       cfgenvflags = property(getCfgEnvFlags, setCfgEnvFlags, None, "cfgenvflags property")
 
        def feeder(self, lineno, s):
                """OpenEmbedded package metadata 'feeder'"""
@@ -265,3 +277,6 @@ class PackageReader(ConfigReader):
                        return
 
                return ConfigReader.feeder(self, lineno, s)
+
+oeconf = ConfigReader()
+
index ac80a32..4437c5f 100644 (file)
--- a/bin/parse
+++ b/bin/parse
@@ -16,8 +16,8 @@ for s in getenv('OEPATH').split(":"):
        if os.access(os.path.join(s,'conf/oe.conf'), os.R_OK):
                __oepath_found_it__ = 1
                try:
-                       b = oeparser.ConfigReader(os.path.join(s,"conf/oe.conf"))
-                       b.reader()
+                       oeparser.oeconf.fn = os.path.join(s, "conf/oe.conf")
+                       oeparser.oeconf.reader()
                except IOError:
                        pass
 
@@ -25,15 +25,17 @@ if __oepath_found_it__ == 0:
        fatal("error locating conf/oe.conf")
 
 try:
-       c = oeparser.PackageReader(sys.argv[1])
-       c.cfgenv = b.env # point the package reader to our config data
-       c.reader()
+       a = oeparser.PackageReader(sys.argv[1])
+#      c.cfgenv = b.env # point the package reader to our config data
+       a.reader()
+
+       data = {}
+       for env in [oeparser.oeconf.env,a.env]:
+               for item in env.keys():
+                       data[item] = env[item]
        
-       for i in b.env.keys():
-               if not c.env.has_key(i):
-                       c.env[i] = b.env[i]
 except IOError:
        fatal("error accessing build file")
 
-emit_env(sys.__stdout__, c.env)
+emit_env(sys.__stdout__, data)
 sys.exit(0)