[PATCH v2] sb/reports: add sanitize parameter enabled for --mail
Gedare Bloom
gedare at rtems.org
Sun Apr 5 04:13:49 UTC 2020
Adds a --sanitize option to command line for reports.py
and also for the reports.report() interface from setbuilder.py
to remove the Remotes information from git.
Closes #3887.
---
source-builder/sb/reports.py | 52 +++++++++++++++++++++------------
source-builder/sb/setbuilder.py | 4 +--
2 files changed, 35 insertions(+), 21 deletions(-)
diff --git a/source-builder/sb/reports.py b/source-builder/sb/reports.py
index ab20671..e7870c4 100644
--- a/source-builder/sb/reports.py
+++ b/source-builder/sb/reports.py
@@ -241,13 +241,16 @@ class markdown_formatter(formatter):
self.line(self._strong('Remotes:'))
self.line('')
rc = 1
- for r in remotes:
- if 'url' in remotes[r]:
- text = remotes[r]['url']
- else:
- text = 'no URL found'
- self.line('%d. %s: %s' % (rc, r, text))
- rc += 1
+ if not remotes:
+ self.line('[ remotes removed, contact sender for details ]')
+ else:
+ for r in remotes:
+ if 'url' in remotes[r]:
+ text = remotes[r]['url']
+ else:
+ text = 'no URL found'
+ self.line('%d. %s: %s' % (rc, r, text))
+ rc += 1
self.line('')
self.line(self._strong('Status:'))
self.line('')
@@ -427,14 +430,17 @@ class text_formatter(formatter):
if valid:
self.line('%s Remotes:' % (self.cini))
rc = 0
- for r in remotes:
- rc += 1
- if 'url' in remotes[r]:
- text = remotes[r]['url']
- else:
- text = 'no URL found'
- text = '%s: %s' % (r, text)
- self.line('%s %2d: %s' % (self.cini, rc, text))
+ if not remotes:
+ self.line('[ remotes removed, contact sender for details ]')
+ else:
+ for r in remotes:
+ rc += 1
+ if 'url' in remotes[r]:
+ text = remotes[r]['url']
+ else:
+ text = 'no URL found'
+ text = '%s: %s' % (r, text)
+ self.line('%s %2d: %s' % (self.cini, rc, text))
self.line('%s Status:' % (self.cini))
if dirty:
self.line('%s Repository is dirty' % (self.cini))
@@ -603,7 +609,7 @@ def _merge(_dict, new):
class report:
"""Report the build details about a package given a config file."""
- def __init__(self, formatter, _configs, opts, macros = None):
+ def __init__(self, formatter, sanitize, _configs, opts, macros = None):
if type(formatter) == str:
if formatter == 'text':
self.formatter = text_formatter()
@@ -621,6 +627,7 @@ class report:
self.formatter = formatter
self.configs = _configs
self.opts = opts
+ self.sanitize = sanitize
if macros is None:
self.macros = opts.defaults
else:
@@ -649,7 +656,10 @@ class report:
def git_status(self):
r = git.repo('.', self.opts, self.macros)
- self.formatter.git_status(r.valid(), r.dirty(), r.head(), r.remotes())
+ if self.sanitize:
+ self.formatter.git_status(r.valid(), r.dirty(), r.head(), None)
+ else:
+ self.formatter.git_status(r.valid(), r.dirty(), r.head(), r.remotes())
def introduction(self, name, intro_text = None):
now = datetime.datetime.now().ctime()
@@ -892,7 +902,8 @@ def run(args):
optargs = { '--list-bsets': 'List available build sets',
'--list-configs': 'List available configurations',
'--format': 'Output format (text, html, markdown, ini, xml)',
- '--output': 'File name to output the report' }
+ '--output': 'File name to output the report',
+ '--sanitize': 'Remove Remotes information from report'}
opts = options.load(args, optargs, logfile = False)
if opts.get_arg('--output') and len(opts.params()) > 1:
raise error.general('--output can only be used with a single config')
@@ -922,7 +933,10 @@ def run(args):
formatter = xml_formatter()
else:
raise error.general('invalid format: %s' % (format_opt[1]))
- r = report(formatter, configs, opts)
+ sanitize = False
+ if opts.get_arg('--sanitize'):
+ sanitize = True
+ r = report(formatter, sanitize, configs, opts)
for _config in opts.params():
if output is None:
outname = path.splitext(_config)[0] + formatter.ext()
diff --git a/source-builder/sb/setbuilder.py b/source-builder/sb/setbuilder.py
index 7b80817..a6efd75 100644
--- a/source-builder/sb/setbuilder.py
+++ b/source-builder/sb/setbuilder.py
@@ -189,7 +189,7 @@ class buildset:
outname = path.host(path.join(outpath, name))
else:
outname = None
- r = reports.report(format, self.configs,
+ r = reports.report(format, False, self.configs,
copy.copy(opts), copy.copy(macros))
r.introduction(_build.config.file_name())
r.generate(_build.config.file_name())
@@ -199,7 +199,7 @@ class buildset:
r.write(outname)
del r
if mail:
- r = reports.report('text', self.configs,
+ r = reports.report('text', True, self.configs,
copy.copy(opts), copy.copy(macros))
r.introduction(_build.config.file_name())
r.generate(_build.config.file_name())
--
2.17.1
More information about the devel
mailing list