Commit 21a19d70 authored by Doug Anderson's avatar Doug Anderson Committed by Simon Glass
Browse files

patman: Add a call to if it exists

For Linux the best way to figure out where to send a patch is with the
"" script.  Add support for calling it from patman.
Support is added unconditionally for "scripts/" in
case it is helpful for any other projects.
Signed-off-by: default avatarDoug Anderson <>
parent 31187255
......@@ -43,6 +43,9 @@ Series-to:
in one of your commits, the series will be sent there.
In Linux this will also call on each of your
patches automatically.
How to use this tool
......@@ -65,8 +68,12 @@ will get a consistent result each time.
How to configure it
For most cases patman will locate and use the file 'doc/git-mailrc' in
your U-Boot directory. This contains most of the aliases you will need.
For most cases of using patman for U-Boot developement patman will
locate and use the file 'doc/git-mailrc' in your U-Boot directory.
This contains most of the aliases you will need.
For Linux the 'scripts/' handles figuring out where
to send patches pretty well.
During the first run patman creates a config file for you by taking the default
user name and email address from the global .gitconfig file.
# Copyright (c) 2012 The Chromium OS Authors.
# See file CREDITS for list of people who contributed to this
# project.
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston,
# MA 02111-1307 USA
import command
import gitutil
import os
def FindGetMaintainer():
"""Look for the script.
If the script is found we'll return a path to it; else None.
try_list = [
os.path.join(gitutil.GetTopLevel(), 'scripts'),
# Look in the list
for path in try_list:
fname = os.path.join(path, '')
if os.path.isfile(fname):
return fname
return None
def GetMaintainer(fname, verbose=False):
"""Run on a file if we find it.
We look for in the 'scripts' directory at the top of
git. If we find it we'll run it. If we don't find
then we fail silently.
fname: Path to the patch file to run on.
A list of email addresses to CC to.
get_maintainer = FindGetMaintainer()
if not get_maintainer:
if verbose:
print "WARNING: Couldn't find"
return []
stdout = command.Output(get_maintainer, '--norolestats', fname)
return stdout.splitlines()
......@@ -22,6 +22,7 @@
import itertools
import os
import get_maintainer
import gitutil
import terminal
......@@ -225,6 +226,7 @@ class Series(dict):
if process_tags:
list += gitutil.BuildEmailList(commit.tags)
list += gitutil.BuildEmailList(commit.cc_list)
list += get_maintainer.GetMaintainer(commit.patch)
all_ccs += list
print >>fd, commit.patch, ', '.join(list)
self._generated_cc[commit.patch] = list
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment