options: Command line options object
args: Command line arguments (list of strings)
"""
+ if options.full_help:
+ pager = os.getenv('PAGER')
+ if not pager:
+ pager = 'more'
+ fname = os.path.join(os.path.dirname(sys.argv[0]), 'README')
+ command.Run(pager, fname)
+ return 0
+
gitutil.Setup()
bsettings.Setup(options.config_file)
if options.list_tool_chains:
toolchains.List()
print
- return
+ return 0
# Work out how many commits to build. We want to build everything on the
# branch. We also build the upstream commit as a control so we can see
if count is None:
str = ("Branch '%s' not found or has no upstream" %
options.branch)
- print col.Color(col.RED, str)
- sys.exit(1)
+ sys.exit(col.Color(col.RED, str))
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)
- print col.Color(col.RED, str)
- sys.exit(1)
+ sys.exit(col.Color(col.RED, str))
# Work out what subset of the boards we are building
board_file = os.path.join(options.git, 'boards.cfg')
- if not os.path.exists(board_file):
- print 'Could not find %s' % board_file
- status = subprocess.call([os.path.join(options.git,
- 'tools/genboardscfg.py')])
- if status != 0:
- print >> sys.stderr, "Failed to generate boards.cfg"
- sys.exit(1)
+ status = subprocess.call([os.path.join(options.git,
+ 'tools/genboardscfg.py')])
+ if status != 0:
+ sys.exit("Failed to generate boards.cfg")
boards = board.Boards()
boards.ReadBoards(os.path.join(options.git, 'boards.cfg'))
- why_selected = boards.SelectBoards(args)
+
+ exclude = []
+ if options.exclude:
+ for arg in options.exclude:
+ exclude += arg.split(',')
+
+ why_selected = boards.SelectBoards(args, exclude)
selected = boards.GetSelected()
if not len(selected):
- print col.Color(col.RED, 'No matching boards found')
- sys.exit(1)
+ sys.exit(col.Color(col.RED, 'No matching boards found'))
# Read the metadata from the commits. First look at the upstream commit,
# then the ones in the branch. We would like to do something like
gnu_make = command.Output(os.path.join(options.git,
'scripts/show-gnu-make')).rstrip()
if not gnu_make:
- print >> sys.stderr, 'GNU Make not found'
- sys.exit(1)
+ sys.exit('GNU Make not found')
# Create a new builder with the selected options
if options.branch:
options)
builder.SetDisplayOptions(options.show_errors, options.show_sizes,
- options.show_detail, options.show_bloat)
+ options.show_detail, options.show_bloat,
+ options.list_error_boards)
if options.summary:
# We can't show function sizes without board details at present
if options.show_bloat:
options.show_detail = True
builder.ShowSummary(commits, board_selected)
else:
- builder.BuildBoards(commits, board_selected,
+ fail, warned = builder.BuildBoards(commits, board_selected,
options.keep_outputs, options.verbose)
+ if fail:
+ return 128
+ elif warned:
+ return 129
+ return 0