summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/patman/checkpatch.py7
-rw-r--r--tools/patman/cmdline.py8
-rw-r--r--tools/patman/get_maintainer.py13
-rw-r--r--tools/patman/project.py3
-rw-r--r--tools/patman/settings.py3
-rw-r--r--tools/u_boot_pylib/gitutil.py11
6 files changed, 30 insertions, 15 deletions
diff --git a/tools/patman/checkpatch.py b/tools/patman/checkpatch.py
index 5df06b1095a..f9204a907ef 100644
--- a/tools/patman/checkpatch.py
+++ b/tools/patman/checkpatch.py
@@ -22,7 +22,7 @@ RE_NOTE = re.compile(r'NOTE: (.*)')
def find_check_patch():
- top_level = gitutil.get_top_level()
+ top_level = gitutil.get_top_level() or ''
try_list = [
os.getcwd(),
os.path.join(os.getcwd(), '..', '..'),
@@ -219,8 +219,9 @@ def check_patch(fname, verbose=False, show_types=False, use_tree=False,
args.append('--no-tree')
if show_types:
args.append('--show-types')
- output = command.output(*args, os.path.join(cwd or '', fname),
- raise_on_error=False)
+ output = command.output(
+ *args, os.path.join(cwd or '', fname), raise_on_error=False,
+ capture_stderr=not use_tree)
return check_patch_parse(output, verbose)
diff --git a/tools/patman/cmdline.py b/tools/patman/cmdline.py
index 0ae92f88c4b..108fa52d820 100644
--- a/tools/patman/cmdline.py
+++ b/tools/patman/cmdline.py
@@ -44,11 +44,15 @@ def add_send_args(par):
'-m', '--no-maintainers', action='store_false',
dest='add_maintainers', default=True,
help="Don't cc the file maintainers automatically")
+ default_arg = None
+ top_level = gitutil.get_top_level()
+ if top_level:
+ default_arg = os.path.join(top_level, 'scripts',
+ 'get_maintainer.pl') + ' --norolestats'
par.add_argument(
'--get-maintainer-script', dest='get_maintainer_script', type=str,
action='store',
- default=os.path.join(gitutil.get_top_level(), 'scripts',
- 'get_maintainer.pl') + ' --norolestats',
+ default=default_arg,
help='File name of the get_maintainer.pl (or compatible) script.')
par.add_argument(
'-r', '--in-reply-to', type=str, action='store',
diff --git a/tools/patman/get_maintainer.py b/tools/patman/get_maintainer.py
index 200ee96551d..1c8fa726573 100644
--- a/tools/patman/get_maintainer.py
+++ b/tools/patman/get_maintainer.py
@@ -21,7 +21,7 @@ def find_get_maintainer(script_file_name):
if get_maintainer:
return get_maintainer
- git_relative_script = os.path.join(gitutil.get_top_level(),
+ git_relative_script = os.path.join(gitutil.get_top_level() or '',
script_file_name)
if os.path.exists(git_relative_script):
return git_relative_script
@@ -46,11 +46,14 @@ def get_maintainer(script_file_name, fname, verbose=False):
"""
# Expand `script_file_name` into a file name and its arguments, if
# any.
- cmd_args = shlex.split(script_file_name)
- file_name = cmd_args[0]
- arguments = cmd_args[1:]
+ get_maintainer = None
+ arguments = None
+ if script_file_name:
+ cmd_args = shlex.split(script_file_name)
+ file_name = cmd_args[0]
+ arguments = cmd_args[1:]
- get_maintainer = find_get_maintainer(file_name)
+ get_maintainer = find_get_maintainer(file_name)
if not get_maintainer:
if verbose:
print("WARNING: Couldn't find get_maintainer.pl")
diff --git a/tools/patman/project.py b/tools/patman/project.py
index d6143a67066..e633401e9d6 100644
--- a/tools/patman/project.py
+++ b/tools/patman/project.py
@@ -18,7 +18,8 @@ def detect_project():
"""
top_level = gitutil.get_top_level()
- if os.path.exists(os.path.join(top_level, "include", "u-boot")):
+ if (not top_level or
+ os.path.exists(os.path.join(top_level, "include", "u-boot"))):
return "u-boot"
elif os.path.exists(os.path.join(top_level, "kernel")):
return "linux"
diff --git a/tools/patman/settings.py b/tools/patman/settings.py
index 7a0866cd370..def932db43a 100644
--- a/tools/patman/settings.py
+++ b/tools/patman/settings.py
@@ -364,7 +364,8 @@ def Setup(parser, project_name, argv, config_fname=None):
if config_fname is None:
config_fname = '%s/.patman' % os.getenv('HOME')
- git_local_config_fname = os.path.join(gitutil.get_top_level(), '.patman')
+ git_local_config_fname = os.path.join(gitutil.get_top_level() or '',
+ '.patman')
has_config = False
has_git_local_config = False
diff --git a/tools/u_boot_pylib/gitutil.py b/tools/u_boot_pylib/gitutil.py
index cfcfeffe2f4..7d001d03bed 100644
--- a/tools/u_boot_pylib/gitutil.py
+++ b/tools/u_boot_pylib/gitutil.py
@@ -644,7 +644,7 @@ def get_top_level():
"""Return name of top-level directory for this git repo.
Returns:
- str: Full path to git top-level directory
+ str: Full path to git top-level directory, or None if not found
This test makes sure that we are running tests in the right subdir
@@ -652,7 +652,12 @@ def get_top_level():
os.path.join(get_top_level(), 'tools', 'patman')
True
"""
- return command.output_one_line('git', 'rev-parse', '--show-toplevel')
+ result = command.run_one(
+ 'git', 'rev-parse', '--show-toplevel', oneline=True, capture=True,
+ capture_stderr=True, raise_on_error=False)
+ if result.return_code:
+ return None
+ return result.stdout.strip()
def get_alias_file():
@@ -670,7 +675,7 @@ def get_alias_file():
if os.path.isabs(fname):
return fname
- return os.path.join(get_top_level(), fname)
+ return os.path.join(get_top_level() or '', fname)
def get_default_user_name():