These are the changes I made to read the ini files also, this does succeed in reading them. But there are a lot of problems to solve. --- rtemstoolkit/configuration.py | 11 ++++++++--- rtemstoolkit/git.py | 1 + rtemstoolkit/macros.py | 16 +++++++++++++++- rtemstoolkit/options.py | 1 + tester/rt/bsps.py | 4 +++- tester/rt/options.py | 2 +- tester/rt/test.py | 9 ++++++--- 7 files changed, 35 insertions(+), 9 deletions(-)
diff --git a/rtemstoolkit/configuration.py b/rtemstoolkit/configuration.py index 71ab3ca..459276e 100644 --- a/rtemstoolkit/configuration.py +++ b/rtemstoolkit/configuration.py @@ -41,9 +41,14 @@ try: import configparser except: import ConfigParser as configparser - -from rtemstoolkit import error -from rtemstoolkit import path + +try : + from . import error + from . import path +except (ValueError, SystemError): + import error + import path + class configuration: diff --git a/rtemstoolkit/git.py b/rtemstoolkit/git.py index 5f3af58..4a6f2f8 100644 --- a/rtemstoolkit/git.py +++ b/rtemstoolkit/git.py @@ -80,6 +80,7 @@ class repo: self.git = 'git' else: self.git = self.macros.expand('%{__git}') + #self.git = self.macros.config.get_item('global', '__git') def git_version(self): ec, output = self._run(['--version'], True) diff --git a/rtemstoolkit/macros.py b/rtemstoolkit/macros.py index 31f5a7e..4772562 100644 --- a/rtemstoolkit/macros.py +++ b/rtemstoolkit/macros.py @@ -48,10 +48,13 @@ try: from . import error from . import log from . import path + from . import configuration except (ValueError, SystemError): import error import log import path + import configuration + # # Macro tables @@ -123,7 +126,16 @@ class macros: self.read_map_locked = copy.copy(original.read_map_locked) self.write_map = copy.copy(original.write_map) if name is not None: - self.load(name) + #self.load(name) + self.config = configuration.configuration() + self.config.load(name) + self.add_macros() + #self.config.load(name) + + def add_macros(self): + for section in self.config.config.sections(): + for label in self.config.config.options(section): + self.macros[section][label] = self.config.get_item(section, label) def __copy__(self): return macros(original = self) @@ -474,6 +486,8 @@ class macros: for m in self.macro_filter.findall(_str): name = m[2:-1] macro = self.get(name) + #for section in self.config.config.sections(): + # macro = self.config.get_item(section, name) if macro is None: raise error.general('cannot expand default macro: %s in "%s"' % (m, _str)) diff --git a/rtemstoolkit/options.py b/rtemstoolkit/options.py index 70e9786..3b27a95 100644 --- a/rtemstoolkit/options.py +++ b/rtemstoolkit/options.py @@ -427,6 +427,7 @@ class command_line(object): return None um = [] configs = self.defaults.expand('%{_configdir}').split(':') + #configs = self.defaults.config.get_item('%{_configdir}').split(':') for m in self.opts['macros'].split(','): if path.exists(m): um += [m] diff --git a/tester/rt/bsps.py b/tester/rt/bsps.py index 91f5f62..048d85c 100644 --- a/tester/rt/bsps.py +++ b/tester/rt/bsps.py @@ -33,7 +33,9 @@ from rtemstoolkit import log from rtemstoolkit import path def list(opts): - path_ = opts.defaults.expand('%%{_configdir}/bsps/*.mc') + #path_ = opts.defaults.expand('%%{_configdir}/bsps/*.mc') + path_ = opts.defaults.expand('%%{_configdir}/bsps/*.ini') + #path_ = opts.defaults.config.get_item('%%{_configdir}/bsps/*.mc') bsps = path.collect_files(path_) log.notice(' BSP List:') for bsp in bsps: diff --git a/tester/rt/options.py b/tester/rt/options.py index d41b721..85888d2 100644 --- a/tester/rt/options.py +++ b/tester/rt/options.py @@ -52,7 +52,7 @@ from rtemstoolkit import version # # The path for the defaults. # -defaults_mc = 'rtems/testing/defaults.mc' +defaults_mc = 'rtems/testing/defaults.ini' class command_line(options.command_line): """Process the command line in a common way for all Tool Builder commands.""" diff --git a/tester/rt/test.py b/tester/rt/test.py index 7a35f59..7056667 100644 --- a/tester/rt/test.py +++ b/tester/rt/test.py @@ -219,7 +219,9 @@ def _job_trace(tst, msg, total, exe, active, reporting): reporting, total, exe, s)) def list_bsps(opts): - path_ = opts.defaults.expand('%%{_configdir}/bsps/*.mc') + #path_ = opts.defaults.expand('%%{_configdir}/bsps/*.mc') + path_ = opts.defaults.expand('%%{_configdir}/bsps/*.ini') + #path_ = opts.defaults.config.get_item('%%{_configdir}/bsps/*.mc') bsps = path.collect_files(path_) log.notice(' BSP List:') for bsp in bsps: @@ -277,8 +279,9 @@ def run(command_path = None): bsp = opts.find_arg('--rtems-bsp') if bsp is None or len(bsp) != 2: raise error.general('RTEMS BSP not provided or invalid option') - opts.defaults.load('%%{_configdir}/bsps/%s.mc' % (bsp[1])) - bsp = opts.defaults.get('%{bsp}') + #opts.defaults.load('%%{_configdir}/bsps/%s.mc' % (bsp[1])) + opts.defaults.config.load(opts.defaults.expand('%%{_configdir}/bsps/%s.ini' % (bsp[1]))) + bsp = opts.defaults.config.get_item(bsp[1], 'bsp') if not bsp: raise error.general('BSP definition (%{bsp}) not found in the global map') bsp = bsp[2] -- 2.1.4 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel