diff options
author | Chris Johns <chrisj@rtems.org> | 2013-04-21 18:37:02 +1000 |
---|---|---|
committer | Chris Johns <chrisj@rtems.org> | 2013-04-21 18:37:02 +1000 |
commit | 5142becd8ec950ea0f2d36cdc9488660abc2ca29 (patch) | |
tree | cbe93e6ede010f4e716fcd21fd123a4247b0c917 /source-builder/sb/config.py | |
parent | Add source and patches section. (diff) | |
download | rtems-source-builder-5142becd8ec950ea0f2d36cdc9488660abc2ca29.tar.bz2 |
Refactor the logging support.
Diffstat (limited to 'source-builder/sb/config.py')
-rw-r--r-- | source-builder/sb/config.py | 71 |
1 files changed, 32 insertions, 39 deletions
diff --git a/source-builder/sb/config.py b/source-builder/sb/config.py index 457044a..7cd1daf 100644 --- a/source-builder/sb/config.py +++ b/source-builder/sb/config.py @@ -227,8 +227,8 @@ class file: self.macros = opts.defaults else: self.macros = macros - if self.opts.trace(): - print 'config: %s' % (name) + self.init_name = name + log.trace('config: %s' % (name)) self.disable_macro_reassign = False self.configpath = [] self.wss = re.compile(r'\s+') @@ -262,22 +262,19 @@ class file: return s def _name_line_msg(self, msg): - return '%s:%d: %s' % (path.basename(self.name), self.lc, msg) + return '%s:%d: %s' % (path.basename(self.init_name), self.lc, msg) def _output(self, text): if not self.opts.quiet(): log.output(text) - def _warning(self, msg): - self._output('warning: %s' % (self._name_line_msg(msg))) - def _error(self, msg): err = 'error: %s' % (self._name_line_msg(msg)) - print >> sys.stderr, err - self._output(err) + log.stderr(err) + log.output(err) self.in_error = True if not self.opts.dry_run(): - print >> sys.stderr, 'warning: switched to dry run due to errors' + log.stderr('warning: switched to dry run due to errors') self.opts.set_dry_run() def _label(self, name): @@ -389,7 +386,7 @@ class file: elif m.startswith('%{expand'): colon = m.find(':') if colon < 8: - self._warning('malformed expand macro, no colon found') + log.warning('malformed expand macro, no colon found') else: e = self._expand(m[colon + 1:-1].strip()) s = s.replace(m, e) @@ -408,11 +405,11 @@ class file: mn = None elif m.startswith('%{echo'): if not m.endswith('}'): - self._warning("malformed conditional macro '%s'" % (m)) + log.warning("malformed conditional macro '%s'" % (m)) mn = None else: e = self._expand(m[6:-1].strip()) - self._output('%s' % (self._name_line_msg(e))) + log.output('%s' % (self._name_line_msg(e))) s = '' expanded = True mn = None @@ -432,7 +429,7 @@ class file: colon = m[start:].find(':') if colon < 0: if not m.endswith('}'): - self._warning("malformed conditional macro '%s'" % (m)) + log.warning("malformed conditional macro '%s'" % (m)) mn = None else: mn = self._label(m[start:-1]) @@ -474,15 +471,15 @@ class file: def _select(self, config, ls): if len(ls) != 2: - self._warning('invalid select statement') + log.warning('invalid select statement') else: r = self.macros.set_read_map(ls[1]) - if self.opts.trace(): - print '_select: ', r, ls[1], self.macros.maps() + log.trace('config: %s: _select: %s %s %r' % \ + (self.init_name, r, ls[1], self.macros.maps())) def _define(self, config, ls): if len(ls) <= 1: - self._warning('invalid macro definition') + log.warning('invalid macro definition') else: d = self._label(ls[1]) if self.disable_macro_reassign: @@ -493,7 +490,7 @@ class file: else: self.macros[d] = ' '.join([f.strip() for f in ls[2:]]) else: - self._warning("macro '%s' already defined" % (d)) + log.warning("macro '%s' already defined" % (d)) else: if len(ls) == 2: self.macros[d] = '1' @@ -502,13 +499,13 @@ class file: def _undefine(self, config, ls): if len(ls) <= 1: - self._warning('invalid macro definition') + log.warning('invalid macro definition') else: mn = self._label(ls[1]) if mn in self.macros: del self.macros[mn] else: - self._warning("macro '%s' not defined" % (mn)) + log.warning("macro '%s' not defined" % (mn)) def _ifs(self, config, ls, label, iftrue, isvalid): text = [] @@ -616,8 +613,7 @@ class file: self._error('malformed if: ' + reduce(add, ls, '')) if invert: istrue = not istrue - if self.opts.trace(): - print '_if: ', ifls, istrue + log.trace('config: %s: _if: %s %s' % (self.init_name, ifls, str(istrue))) return self._ifs(config, ls, '%if', istrue, isvalid) def _ifos(self, config, ls, isvalid): @@ -663,8 +659,8 @@ class file: l = _clean(l) if len(l) == 0: continue - if self.opts.trace(): - print '%03d: %d %s' % (self.lc, isvalid, l) + log.trace('config: %s: %03d: %s %s' % \ + (self.init_name, self.lc, str(isvalid), l)) lo = l if isvalid: l = self._expand(l) @@ -718,11 +714,11 @@ class file: elif ls[0] == '%endif': if roc: return ('control', '%endif', '%endif') - self._warning("unexpected '" + ls[0] + "'") + log.warning("unexpected '" + ls[0] + "'") elif ls[0] == '%else': if roc: return ('control', '%else', '%else') - self._warning("unexpected '" + ls[0] + "'") + log.warning("unexpected '" + ls[0] + "'") elif ls[0].startswith('%defattr'): return ('data', [l]) elif ls[0] == '%bcond_with': @@ -745,7 +741,7 @@ class file: for d in self._directive: if ls[0].strip() == d: return ('directive', ls[0].strip(), ls[1:]) - self._warning("unknown directive: '" + ls[0] + "'") + log.warning("unknown directive: '" + ls[0] + "'") return ('data', [lo]) else: return ('data', [lo]) @@ -837,8 +833,7 @@ class file: raise error.general('no config file found: %s' % (cfgname)) try: - if self.opts.trace(): - print '_open: %s' % (path.host(configname)) + log.trace('config: %s: _open: %s' % (self.init_name, path.host(configname))) config = open(path.host(configname), 'r') except IOError, err: raise error.general('error opening config file: %s' % (path.host(configname))) @@ -858,7 +853,7 @@ class file: elif r[0] == 'control': if r[1] == '%end': break - self._warning("unexpected '%s'" % (r[1])) + log.warning("unexpected '%s'" % (r[1])) elif r[0] == 'directive': new_data = [] if r[1] == '%description': @@ -873,7 +868,7 @@ class file: _package = r[2][0] else: if r[2][0].strip() != '-n': - self._warning("unknown directive option: '%s'" % (' '.join(r[2]))) + log.warning("unknown directive option: '%s'" % (' '.join(r[2]))) _package = r[2][1].strip() self._set_package(_package) if dir and dir != r[1]: @@ -887,13 +882,12 @@ class file: raise error.general('config error: %s' % (l[7:])) elif l.startswith('%warning'): l = self._expand(l) - print >> sys.stderr, 'warning: %s' % (l[9:]) - self._warning(l[9:]) + log.stderr('warning: %s' % (l[9:])) + log.warning(l[9:]) if not dir: l = self._expand(l) ls = self.tags.split(l, 1) - if self.opts.trace(): - print '_tag: ', l, ls + log.trace('config: %s: _tag: %s %s' % (self.init_name, l, ls)) if len(ls) > 1: info = ls[0].lower() if info[-1] == ':': @@ -904,7 +898,7 @@ class file: if info is not None: self._info_append(info, info_data) else: - self._warning("invalid format: '%s'" % (info_data[:-1])) + log.warning("invalid format: '%s'" % (info_data[:-1])) else: data.append(l) else: @@ -976,8 +970,7 @@ def run(): # Run where defaults.mc is located # opts = options.load(sys.argv, defaults = 'defaults.mc') - if opts.trace(): - print 'config: count %d' % (len(opts.config_files())) + log.trace('config: count %d' % (len(opts.config_files()))) for config_file in opts.config_files(): s = file(config_file, opts) print s @@ -989,7 +982,7 @@ def run(): print ierr sys.exit(1) except KeyboardInterrupt: - print 'user terminated' + log.notice('abort: user terminated') sys.exit(1) sys.exit(0) |