Extend ParserBase to do variable substitution.
authorBrian Dolbec <dolsen@gentoo.org>
Fri, 25 Jan 2013 04:00:24 +0000 (20:00 -0800)
committerBrian Dolbec <dolsen@gentoo.org>
Sat, 2 Mar 2013 02:27:25 +0000 (18:27 -0800)
Also add embedded variable substitiution to default settings.
Why are we not using python's built-in ConfigParser?
We'll migrate it later.

catalyst/config.py
catalyst/main.py

index 774e2edb9dd0b01a555762fb08b96df4b5262bc6..2f3d1abe87ef468b2ead67c93da4d7683c958b89 100644 (file)
@@ -66,6 +66,9 @@ class ParserBase:
                                # Start a new array using the first element of mobjs
                                cur_array = [mobjs[0]]
                                if mobjs[1]:
+                                       # do any variable substitiution embeded in it with
+                                       # the values already obtained
+                                       mobjs[1] = mobjs[1] % values
                                        if self.multiple_values:
                                                # split on white space creating additional array elements
 #                                              subarray = white_space.split(mobjs[1])
index 70ffdd7caf398cfa09fff0a33fe76ce75712afd4..6d544be517701b890810bbe50323d125fbafc8ba 100644 (file)
@@ -118,7 +118,6 @@ def parse_config(myconfig):
        # add our python base directory to use for loading target arch's
        conf_values["PythonDir"] = __selfpath__
 
-
        # print out any options messages
        for opt in conf_values['options']:
                if opt in option_messages:
@@ -135,6 +134,11 @@ def parse_config(myconfig):
        if "envscript" in myconf:
                print "Envscript support enabled."
 
+       # take care of any variable substitutions that may be left
+       for x in list(conf_values):
+               if isinstance(conf_values[x], str):
+                       conf_values[x] = conf_values[x] % conf_values
+
 
 def import_module(target):
        """