Fix the report command. Only output if an outname is given.

This commit is contained in:
Chris Johns 2013-04-28 16:10:02 +10:00
parent 22afed354e
commit 055e4906ef

View File

@ -302,17 +302,19 @@ class report:
self.output_directive('Clean', package.clean()) self.output_directive('Clean', package.clean())
self.config_end(name) self.config_end(name)
def buildset(self, name): def buildset(self, name, opts = None, macros = None):
self.bset_nesting += 1 self.bset_nesting += 1
self.buildset_start(name) self.buildset_start(name)
opts = copy.copy(self.opts) if opts is None:
macros = copy.copy(self.macros) opts = self.opts
if macros is None:
macros = self.macros
bset = setbuilder.buildset(name, self.configs, opts, macros) bset = setbuilder.buildset(name, self.configs, opts, macros)
for c in bset.load(): for c in bset.load():
if c.endswith('.bset'): if c.endswith('.bset'):
self.buildset(c) self.buildset(c, bset.opts, bset.macros)
elif c.endswith('.cfg'): elif c.endswith('.cfg'):
self.config(c, opts, macros) self.config(c, bset.opts, bset.macros)
else: else:
raise error.general('invalid config type: %s' % (c)) raise error.general('invalid config type: %s' % (c))
self.buildset_end(name) self.buildset_end(name)
@ -329,15 +331,16 @@ class report:
self.out = outfile.getvalue() self.out = outfile.getvalue()
infile.close() infile.close()
outfile.close() outfile.close()
try: if name is not None:
o = open(name, "w") try:
o.write(self.out) o = open(name, "w")
o.close() o.write(self.out)
del o o.close()
except IOError, err: del o
raise error.general('writing output file: %s: %s' % (name, err)) except IOError, err:
raise error.general('writing output file: %s: %s' % (name, err))
def make(self, inname, outname, intro_text = None): def make(self, inname, outname = None, intro_text = None):
self.setup() self.setup()
self.introduction(inname, intro_text) self.introduction(inname, intro_text)
config = build.find_config(inname, self.configs) config = build.find_config(inname, self.configs)