commit: e6bca8df21e61111bc6a4e77455a5385a06955f3 Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org> AuthorDate: Fri Jan 25 04:00:24 2013 +0000 Commit: Brian Dolbec <brian.dolbec <AT> gmail <DOT> com> CommitDate: Tue Sep 2 23:08:03 2014 +0000 URL: http://sources.gentoo.org/gitweb/?p=proj/catalyst.git;a=commit;h=e6bca8df
Extend ParserBase to do variable substitution. 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 | 3 +++ catalyst/main.py | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/catalyst/config.py b/catalyst/config.py index 8b23342..bf3c7c6 100644 --- a/catalyst/config.py +++ b/catalyst/config.py @@ -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]) diff --git a/catalyst/main.py b/catalyst/main.py index 1446cf9..5fa3f1b 100644 --- a/catalyst/main.py +++ b/catalyst/main.py @@ -116,7 +116,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: @@ -133,6 +132,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): """