diff options
Diffstat (limited to 'tools/buildman/control.py')
| -rw-r--r-- | tools/buildman/control.py | 52 | 
1 files changed, 28 insertions, 24 deletions
| diff --git a/tools/buildman/control.py b/tools/buildman/control.py index fd9664c85d8..8f4810bc3ef 100644 --- a/tools/buildman/control.py +++ b/tools/buildman/control.py @@ -10,6 +10,7 @@ import sys  from buildman import board  from buildman import bsettings +from buildman import cfgutil  from buildman import toolchain  from buildman.builder import Builder  from patman import command @@ -17,7 +18,7 @@ from patman import gitutil  from patman import patchstream  from patman import terminal  from patman import tools -from patman.terminal import Print +from patman.terminal import tprint  def GetPlural(count):      """Returns a plural 's' if count is not 1""" @@ -72,7 +73,7 @@ def ShowActions(series, why_selected, boards_selected, builder, options,      if commits:          for upto in range(0, len(series.commits), options.step):              commit = series.commits[upto] -            print('   ', col.Color(col.YELLOW, commit.hash[:8], bright=False), end=' ') +            print('   ', col.build(col.YELLOW, commit.hash[:8], bright=False), end=' ')              print(commit.subject)      print()      for arg in why_selected: @@ -84,7 +85,7 @@ def ShowActions(series, why_selected, boards_selected, builder, options,              len(why_selected['all'])))      if board_warnings:          for warning in board_warnings: -            print(col.Color(col.YELLOW, warning)) +            print(col.build(col.YELLOW, warning))  def ShowToolchainPrefix(boards, toolchains):      """Show information about a the tool chain used by one or more boards @@ -134,12 +135,12 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,      global builder      if options.full_help: -        tools.PrintFullHelp( +        tools.print_full_help(              os.path.join(os.path.dirname(os.path.realpath(sys.argv[0])), 'README')          )          return 0 -    gitutil.Setup() +    gitutil.setup()      col = terminal.Color()      options.git_dir = os.path.join(options.git, '.git') @@ -151,14 +152,14 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,      if options.fetch_arch:          if options.fetch_arch == 'list':              sorted_list = toolchains.ListArchs() -            print(col.Color(col.BLUE, 'Available architectures: %s\n' % +            print(col.build(col.BLUE, 'Available architectures: %s\n' %                              ' '.join(sorted_list)))              return 0          else:              fetch_arch = options.fetch_arch              if fetch_arch == 'all':                  fetch_arch = ','.join(toolchains.ListArchs()) -                print(col.Color(col.CYAN, '\nDownloading toolchains: %s' % +                print(col.build(col.CYAN, '\nDownloading toolchains: %s' %                                  fetch_arch))              for arch in fetch_arch.split(','):                  print() @@ -176,11 +177,11 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,          return 0      if options.incremental: -        print(col.Color(col.RED, +        print(col.build(col.RED,                          'Warning: -I has been removed. See documentation'))      if not options.output_dir:          if options.work_in_output: -            sys.exit(col.Color(col.RED, '-w requires that you specify -o')) +            sys.exit(col.build(col.RED, '-w requires that you specify -o'))          options.output_dir = '..'      # Work out what subset of the boards we are building @@ -217,12 +218,12 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,                                                         requested_boards)      selected = boards.GetSelected()      if not len(selected): -        sys.exit(col.Color(col.RED, 'No matching boards found')) +        sys.exit(col.build(col.RED, 'No matching boards found'))      if options.print_prefix:          err = ShowToolchainPrefix(boards, toolchains)          if err: -            sys.exit(col.Color(col.RED, err)) +            sys.exit(col.build(col.RED, err))          return 0      # Work out how many commits to build. We want to build everything on the @@ -235,30 +236,30 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,              count = 1          else:              if has_range: -                count, msg = gitutil.CountCommitsInRange(options.git_dir, +                count, msg = gitutil.count_commits_in_range(options.git_dir,                                                           options.branch)              else: -                count, msg = gitutil.CountCommitsInBranch(options.git_dir, +                count, msg = gitutil.count_commits_in_branch(options.git_dir,                                                            options.branch)              if count is None: -                sys.exit(col.Color(col.RED, msg)) +                sys.exit(col.build(col.RED, msg))              elif count == 0: -                sys.exit(col.Color(col.RED, "Range '%s' has no commits" % +                sys.exit(col.build(col.RED, "Range '%s' has no commits" %                                     options.branch))              if msg: -                print(col.Color(col.YELLOW, msg)) +                print(col.build(col.YELLOW, msg))              count += 1   # Build upstream commit also      if not count:          str = ("No commits found to process in branch '%s': "                 "set branch's upstream or use -c flag" % options.branch) -        sys.exit(col.Color(col.RED, str)) +        sys.exit(col.build(col.RED, str))      if options.work_in_output:          if len(selected) != 1: -            sys.exit(col.Color(col.RED, +            sys.exit(col.build(col.RED,                                 '-w can only be used with a single board'))          if count != 1: -            sys.exit(col.Color(col.RED, +            sys.exit(col.build(col.RED,                                 '-w can only be used with a single commit'))      # Read the metadata from the commits. First look at the upstream commit, @@ -275,9 +276,9 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,              if has_range:                  range_expr = options.branch              else: -                range_expr = gitutil.GetRangeInBranch(options.git_dir, +                range_expr = gitutil.get_range_in_branch(options.git_dir,                                                        options.branch) -            upstream_commit = gitutil.GetUpstream(options.git_dir, +            upstream_commit = gitutil.get_upstream(options.git_dir,                                                    options.branch)              series = patchstream.get_metadata_for_list(upstream_commit,                  options.git_dir, 1, series=None, allow_overwrite=True) @@ -306,7 +307,7 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,      if not options.step:          options.step = len(series.commits) - 1 -    gnu_make = command.Output(os.path.join(options.git, +    gnu_make = command.output(os.path.join(options.git,              'scripts/show-gnu-make'), raise_on_error=False).rstrip()      if not gnu_make:          sys.exit('GNU Make not found') @@ -321,6 +322,8 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,              output_dir = os.path.join(options.output_dir, dirname)          if clean_dir and os.path.exists(output_dir):              shutil.rmtree(output_dir) +    adjust_cfg = cfgutil.convert_list_to_dict(options.adjust_cfg) +      builder = Builder(toolchains, output_dir, options.git_dir,              options.threads, options.jobs, gnu_make=gnu_make, checkout=True,              show_unknown=options.show_unknown, step=options.step, @@ -332,7 +335,8 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,              squash_config_y=not options.preserve_config_y,              warnings_as_errors=options.warnings_as_errors,              work_in_output=options.work_in_output, -            test_thread_exceptions=test_thread_exceptions) +            test_thread_exceptions=test_thread_exceptions, +            adjust_cfg=adjust_cfg)      builder.force_config_on_failure = not options.quick      if make_func:          builder.do_make = make_func @@ -358,7 +362,7 @@ def DoBuildman(options, args, toolchains=None, make_func=None, boards=None,          else:              commits = None -        Print(GetActionSummary(options.summary, commits, board_selected, +        tprint(GetActionSummary(options.summary, commits, board_selected,                                 options))          # We can't show function sizes without board details at present | 
