mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-15 15:53:02 +00:00
abf7004321
The importlib_resources import is not actually used. Fix this so that patman can run on Python 3.6 to some extent, once 'pip3 install importlib-resources' has been run. Signed-off-by: Simon Glass <sjg@chromium.org>
98 lines
3 KiB
Python
Executable file
98 lines
3 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
# SPDX-License-Identifier: GPL-2.0+
|
|
#
|
|
# Copyright (c) 2011 The Chromium OS Authors.
|
|
#
|
|
|
|
"""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
|
|
our_path = os.path.dirname(os.path.realpath(__file__))
|
|
sys.path.append(os.path.join(our_path, '..'))
|
|
|
|
# Our modules
|
|
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():
|
|
"""Run patamn
|
|
|
|
This is the main program. It collects arguments and runs either the tests or
|
|
the control module.
|
|
"""
|
|
args = cmdline.parse_args()
|
|
|
|
if not args.debug:
|
|
sys.tracebacklimit = 0
|
|
|
|
# Run our meagre tests
|
|
if args.cmd == 'test':
|
|
# pylint: disable=C0415
|
|
from patman import func_test
|
|
from patman import test_checkpatch
|
|
|
|
result = test_util.run_test_suites(
|
|
'patman', False, False, False, None, None, None,
|
|
[test_checkpatch.TestPatch, func_test.TestFunctional,
|
|
'gitutil', 'settings'])
|
|
|
|
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)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(run_patman())
|