This reverts commit cb935f345683194e42e6e883d79c5a16479acd74. Discussion in D68708 advises that green dragon is being briskly refurbished, and it's good to have this patch up testing it.
50 lines
1.7 KiB
Python
50 lines
1.7 KiB
Python
# DExTer : Debugging Experience Tester
|
|
# ~~~~~~ ~ ~~ ~ ~~
|
|
#
|
|
# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
# See https://llvm.org/LICENSE.txt for license information.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
"""This is a special subtool that is run when no subtool is specified.
|
|
It just provides a welcome message and simple usage instructions.
|
|
"""
|
|
|
|
from dex.tools import ToolBase, get_tool_names
|
|
from dex.utils.Exceptions import Error
|
|
from dex.utils.ReturnCode import ReturnCode
|
|
|
|
|
|
# This is a special "tool" that is run when no subtool has been specified on
|
|
# the command line. Its only job is to provide useful usage info.
|
|
class Tool(ToolBase):
|
|
"""Welcome to DExTer (Debugging Experience Tester).
|
|
Please choose a subtool from the list below. Use 'dexter.py help' for more
|
|
information.
|
|
"""
|
|
|
|
@property
|
|
def name(self):
|
|
return 'DExTer'
|
|
|
|
def add_tool_arguments(self, parser, defaults):
|
|
parser.description = Tool.__doc__
|
|
parser.add_argument(
|
|
'subtool',
|
|
choices=[t for t in get_tool_names() if not t.endswith('-')],
|
|
nargs='?',
|
|
help='name of subtool')
|
|
parser.add_argument(
|
|
'subtool_options',
|
|
metavar='subtool-options',
|
|
nargs='*',
|
|
help='subtool specific options')
|
|
|
|
def handle_options(self, defaults):
|
|
if not self.context.options.subtool:
|
|
raise Error('<d>no subtool specified</>\n\n{}\n'.format(
|
|
self.parser.format_help()))
|
|
|
|
def go(self) -> ReturnCode:
|
|
# This fn is never called because not specifying a subtool raises an
|
|
# exception.
|
|
return ReturnCode._ERROR
|