mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
patman: Move all non-test logic into control module
It is easier for tests if the top-level control logic is all in one module. Create a new do_patman() function to handle this. Move the existing code into it. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -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
|
||||
@@ -24,9 +17,7 @@ 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():
|
||||
@@ -54,44 +45,8 @@ def run_patman():
|
||||
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:
|
||||
control.do_patman(args)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -9,12 +9,21 @@ the features of patman.
|
||||
"""
|
||||
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
try:
|
||||
from importlib import resources
|
||||
except ImportError:
|
||||
# for Python 3.6
|
||||
import importlib_resources as resources
|
||||
|
||||
from patman import checkpatch
|
||||
from patman import patchstream
|
||||
from u_boot_pylib import gitutil
|
||||
from u_boot_pylib import terminal
|
||||
from u_boot_pylib import tools
|
||||
from patman import checkpatch
|
||||
from patman import patchstream
|
||||
|
||||
|
||||
def setup():
|
||||
@@ -245,3 +254,44 @@ def patchwork_status(branch, count, start, end, dest_branch, force,
|
||||
from patman import status
|
||||
status.check_patchwork_status(series, found[0], branch, dest_branch, force,
|
||||
show_comments, url)
|
||||
|
||||
|
||||
def do_patman(args):
|
||||
if 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
|
||||
send(args)
|
||||
|
||||
# Check status of patches in patchwork
|
||||
elif args.cmd == 'status':
|
||||
ret_code = 0
|
||||
try:
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user