mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-04 05:50:17 +00:00 
			
		
		
		
	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>
		
			
				
	
	
		
			99 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			3.0 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())
 |