utils/get-developers: add -e flag to only list email addresses for git send-email

When called with a list of patches, get-developers prints the entire git
send-email invocation line:

./utils/get-developers 0001-git-security-bump-to-version-2.16.5.patch
git send-email --to buildroot@buildroot.org --cc "Matt Weber <matthew.weber@rockwellcollins.com>"

This may be handy when creating an entire patch series and editing a cover
letter, but it does mean that this has to be explicitly executed and
get-developers cannot be used directly by the --cc-cmd option of git
send-email to automatically CC affected developers.

So add an -e flag to only let get-developers print the email addresses of
the affected developers in the one-email-per-line format expected by git
send-email, similar to how get_maintainer.pl works in the Linux kernel.

With this and a suitable git configuration:

git config sendemail.to buildroot@buildroot.org
git config sendemail.ccCmd "$(pwd)/utils/get-developers -e"

You can simply do:

git send-email master

To automatically mail the buildroot list and CC affected developers on
patches.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Peter Korsgaard 2018-10-08 09:43:33 +02:00 committed by Thomas Petazzoni
parent b400c2ae0b
commit bcf2ed5cc3

View File

@ -18,6 +18,8 @@ def parse_args():
help='find developers in charge of these files') help='find developers in charge of these files')
parser.add_argument('-c', dest='check', action='store_const', parser.add_argument('-c', dest='check', action='store_const',
const=True, help='list files not handled by any developer') const=True, help='list files not handled by any developer')
parser.add_argument('-e', dest='email', action='store_const',
const=True, help='only list affected developer email addresses')
return parser.parse_args() return parser.parse_args()
@ -90,6 +92,10 @@ def __main__():
if i in dev.infras: if i in dev.infras:
matching_devs.add(dev.name) matching_devs.add(dev.name)
if args.email:
for dev in matching_devs:
print dev
else:
result = "--to buildroot@buildroot.org" result = "--to buildroot@buildroot.org"
for dev in matching_devs: for dev in matching_devs:
result += " --cc \"%s\"" % dev result += " --cc \"%s\"" % dev