summaryrefslogtreecommitdiffstats
path: root/source-builder/sb/setbuilder.py
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2013-03-04 09:14:11 +1100
committerChris Johns <chrisj@rtems.org>2013-03-04 09:14:11 +1100
commit26595c7b29c35f22d2a10c5a7a4e7eec2ff26898 (patch)
tree89f50d18f94d699bf443d4cc33f09166262f0803 /source-builder/sb/setbuilder.py
parentChange asciidoc to the 8.6.4 release package because Windows was broken. (diff)
downloadrtems-source-builder-26595c7b29c35f22d2a10c5a7a4e7eec2ff26898.tar.bz2
Create a report for each configuration file installed.
Add reporting to the build set building. Add options to disable reporting and control the report format.
Diffstat (limited to 'source-builder/sb/setbuilder.py')
-rw-r--r--source-builder/sb/setbuilder.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/source-builder/sb/setbuilder.py b/source-builder/sb/setbuilder.py
index d838ebe..e73eedb 100644
--- a/source-builder/sb/setbuilder.py
+++ b/source-builder/sb/setbuilder.py
@@ -92,6 +92,34 @@ class buildset:
except distutils.errors.DistutilsFileError, err:
raise error.general('copying tree: %s' % (str(err)))
+ def report(self, _config, tmproot):
+ if not self.opts.get_arg('--no-report'):
+ format = self.opts.get_arg('--report-format')
+ if format is None:
+ format = 'html'
+ ext = '.html'
+ else:
+ if len(format) != 2:
+ raise error.general('invalid report format option: %s' % ('='.join(format)))
+ if format[1] == 'text':
+ format = 'text'
+ ext = '.txt'
+ elif format[1] == 'asciidoc':
+ format = 'asciidoc'
+ ext = '.txt'
+ elif format[1] == 'html':
+ format = 'html'
+ ext = '.html'
+ else:
+ raise error.general('invalid report format: %s' % (format[1]))
+ prefix = self.opts.expand('%{_prefix}', self.defaults)
+ outname = path.host(path.join(tmproot, prefix, path.splitext(path.basename(_config))[0] + ext))
+ _notice(self.opts, 'reporting: %s -> %s' % (_config, outname))
+ if not self.opts.dry_run():
+ r = report.report(format, self.configs, self.defaults)
+ r.make(_config, outname)
+ del r
+
def first_package(self, _build):
tmproot = path.abspath(_build.config.expand('%{_tmproot}'))
_build.rmdir(tmproot)
@@ -254,6 +282,7 @@ class buildset:
tmproot = self.first_package(b)
b.make()
self.every_package(b, tmproot)
+ self.report(configs[s], tmproot)
if s == len(configs) - 1:
self.last_package(b, tmproot)
builds += [b]
@@ -301,6 +330,8 @@ def run():
'--list-bsets': 'List available build sets',
'--keep-going': 'Do not stop on error.',
'--no-install': 'Do not install the packages to the prefix.',
+ '--no-report': 'Do not create a package report.',
+ '--report-format': 'The report format (text, html, asciidoc).',
'--bset-tar-file': 'Create a build set tar file',
'--pkg-tar-files': 'Create package tar files' }
opts, _defaults = defaults.load(sys.argv, optargs)