summaryrefslogtreecommitdiff
path: root/tools/patman/__main__.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/patman/__main__.py')
-rwxr-xr-xtools/patman/__main__.py67
1 files changed, 14 insertions, 53 deletions
diff --git a/tools/patman/__main__.py b/tools/patman/__main__.py
index 36f1c08507c..edfb1b5927c 100755
--- a/tools/patman/__main__.py
+++ b/tools/patman/__main__.py
@@ -6,15 +6,8 @@
"""See README for more information"""
-try:
- from importlib import resources
-except ImportError:
- # for Python 3.6
- import importlib_resources as resources
import os
-import re
import sys
-import traceback
# Allow 'from patman import xxx to work'
# pylint: disable=C0413
@@ -22,11 +15,10 @@ our_path = os.path.dirname(os.path.realpath(__file__))
sys.path.append(os.path.join(our_path, '..'))
# Our modules
+from u_boot_pylib import test_util
+from u_boot_pylib import tout
from patman import cmdline
from patman import control
-from u_boot_pylib import terminal
-from u_boot_pylib import test_util
-from u_boot_pylib import tools
def run_patman():
@@ -40,58 +32,27 @@ def run_patman():
if not args.debug:
sys.tracebacklimit = 0
- # Run our meagre tests
+ tout.init(tout.INFO if args.verbose else tout.WARNING)
+
+ # Run our reasonably good tests
if args.cmd == 'test':
# pylint: disable=C0415
from patman import func_test
from patman import test_checkpatch
+ from patman import test_cseries
+ to_run = args.testname if args.testname not in [None, 'test'] else None
result = test_util.run_test_suites(
- 'patman', False, False, False, None, None, None,
- [test_checkpatch.TestPatch, func_test.TestFunctional,
- 'settings'])
-
+ 'patman', False, args.verbose, args.no_capture,
+ args.test_preserve_dirs, None, to_run, None,
+ [test_checkpatch.TestPatch, func_test.TestFunctional, 'settings',
+ test_cseries.TestCseries])
sys.exit(0 if result.wasSuccessful() else 1)
# Process commits, produce patches files, check them, email them
- elif args.cmd == 'send':
- # Called from git with a patch filename as argument
- # Printout a list of additional CC recipients for this patch
- if args.cc_cmd:
- re_line = re.compile(r'(\S*) (.*)')
- with open(args.cc_cmd, 'r', encoding='utf-8') as inf:
- for line in inf.readlines():
- match = re_line.match(line)
- if match and match.group(1) == args.patchfiles[0]:
- for cca in match.group(2).split('\0'):
- cca = cca.strip()
- if cca:
- print(cca)
-
- elif args.full_help:
- with resources.path('patman', 'README.rst') as readme:
- tools.print_full_help(str(readme))
- else:
- # If we are not processing tags, no need to warning about bad ones
- if not args.process_tags:
- args.ignore_bad_tags = True
- control.send(args)
-
- # Check status of patches in patchwork
- elif args.cmd == 'status':
- ret_code = 0
- try:
- control.patchwork_status(args.branch, args.count, args.start, args.end,
- args.dest_branch, args.force,
- args.show_comments, args.patchwork_url)
- except Exception as exc:
- terminal.tprint(f'patman: {type(exc).__name__}: {exc}',
- colour=terminal.Color.RED)
- if args.debug:
- print()
- traceback.print_exc()
- ret_code = 1
- sys.exit(ret_code)
+ else:
+ exit_code = control.do_patman(args)
+ sys.exit(exit_code)
if __name__ == "__main__":