patman: add support for omitting bouncing addresses
Add support for reading a list of bouncing addresses from a in-tree file (doc/bounces) and from the ~/.patman config file. These addresses are stripped from the Cc list. Signed-off-by: Chris Packham <judge.packham@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com <mailto:philipp.tomsich@theobroma-systems.com>>
This commit is contained in:
parent
c79d18c4b4
commit
e11aa602ab
3
doc/bounces
Normal file
3
doc/bounces
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# List of addresses picked up by patman/get_maintainer.pl that are known to
|
||||||
|
# bounce. Addresses are listed one per line and need to match the author
|
||||||
|
# information recorded in git.
|
@ -84,6 +84,18 @@ Aliases are recursive.
|
|||||||
The checkpatch.pl in the U-Boot tools/ subdirectory will be located and
|
The checkpatch.pl in the U-Boot tools/ subdirectory will be located and
|
||||||
used. Failing that you can put it into your path or ~/bin/checkpatch.pl
|
used. Failing that you can put it into your path or ~/bin/checkpatch.pl
|
||||||
|
|
||||||
|
If you want to avoid sending patches to email addresses that are picked up
|
||||||
|
by patman but are known to bounce you can add a [bounces] section to your
|
||||||
|
.patman file. Unlike the [alias] section these are simple key: value pairs
|
||||||
|
that are not recursive.
|
||||||
|
|
||||||
|
>>>
|
||||||
|
|
||||||
|
[bounces]
|
||||||
|
gonefishing: Fred Bloggs <f.bloggs@napier.net>
|
||||||
|
|
||||||
|
<<<
|
||||||
|
|
||||||
|
|
||||||
If you want to change the defaults for patman's command-line arguments,
|
If you want to change the defaults for patman's command-line arguments,
|
||||||
you can add a [settings] section to your .patman file. This can be used
|
you can add a [settings] section to your .patman file. This can be used
|
||||||
|
@ -10,6 +10,7 @@ import os
|
|||||||
|
|
||||||
import get_maintainer
|
import get_maintainer
|
||||||
import gitutil
|
import gitutil
|
||||||
|
import settings
|
||||||
import terminal
|
import terminal
|
||||||
|
|
||||||
# Series-xxx tags that we understand
|
# Series-xxx tags that we understand
|
||||||
@ -218,6 +219,7 @@ class Series(dict):
|
|||||||
Return:
|
Return:
|
||||||
Filename of temp file created
|
Filename of temp file created
|
||||||
"""
|
"""
|
||||||
|
col = terminal.Color()
|
||||||
# Look for commit tags (of the form 'xxx:' at the start of the subject)
|
# Look for commit tags (of the form 'xxx:' at the start of the subject)
|
||||||
fname = '/tmp/patman.%d' % os.getpid()
|
fname = '/tmp/patman.%d' % os.getpid()
|
||||||
fd = open(fname, 'w')
|
fd = open(fname, 'w')
|
||||||
@ -233,6 +235,9 @@ class Series(dict):
|
|||||||
cc += add_maintainers
|
cc += add_maintainers
|
||||||
elif add_maintainers:
|
elif add_maintainers:
|
||||||
cc += get_maintainer.GetMaintainer(commit.patch)
|
cc += get_maintainer.GetMaintainer(commit.patch)
|
||||||
|
for x in set(cc) & set(settings.bounces):
|
||||||
|
print(col.Color(col.YELLOW, 'Skipping "%s"' % x))
|
||||||
|
cc = set(cc) - set(settings.bounces)
|
||||||
cc = [m.encode('utf-8') if type(m) != str else m for m in cc]
|
cc = [m.encode('utf-8') if type(m) != str else m for m in cc]
|
||||||
all_ccs += cc
|
all_ccs += cc
|
||||||
print(commit.patch, ', '.join(set(cc)), file=fd)
|
print(commit.patch, ', '.join(set(cc)), file=fd)
|
||||||
|
@ -269,6 +269,19 @@ def _ReadAliasFile(fname):
|
|||||||
if bad_line:
|
if bad_line:
|
||||||
print(bad_line)
|
print(bad_line)
|
||||||
|
|
||||||
|
def _ReadBouncesFile(fname):
|
||||||
|
"""Read in the bounces file if it exists
|
||||||
|
|
||||||
|
Args:
|
||||||
|
fname: Filename to read.
|
||||||
|
"""
|
||||||
|
if os.path.exists(fname):
|
||||||
|
with open(fname) as fd:
|
||||||
|
for line in fd:
|
||||||
|
if line.startswith('#'):
|
||||||
|
continue
|
||||||
|
bounces.add(line.strip())
|
||||||
|
|
||||||
def Setup(parser, project_name, config_fname=''):
|
def Setup(parser, project_name, config_fname=''):
|
||||||
"""Set up the settings module by reading config files.
|
"""Set up the settings module by reading config files.
|
||||||
|
|
||||||
@ -293,10 +306,15 @@ def Setup(parser, project_name, config_fname=''):
|
|||||||
for name, value in config.items('alias'):
|
for name, value in config.items('alias'):
|
||||||
alias[name] = value.split(',')
|
alias[name] = value.split(',')
|
||||||
|
|
||||||
|
_ReadBouncesFile('doc/bounces')
|
||||||
|
for name, value in config.items('bounces'):
|
||||||
|
bounces.add(value)
|
||||||
|
|
||||||
_UpdateDefaults(parser, config)
|
_UpdateDefaults(parser, config)
|
||||||
|
|
||||||
# These are the aliases we understand, indexed by alias. Each member is a list.
|
# These are the aliases we understand, indexed by alias. Each member is a list.
|
||||||
alias = {}
|
alias = {}
|
||||||
|
bounces = set()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import doctest
|
import doctest
|
||||||
|
Loading…
Reference in New Issue
Block a user