Source code for webdriver_test_tools.__main__

#!/usr/bin/env python3
"""webdriver_test_tools command line interface"""
import sys
from webdriver_test_tools.cmd import init, version
from webdriver_test_tools.common import cmd


[docs]def get_parser(): """Returns ``ArgumentParser`` object for use with :func:`main()`""" generic_parent_parser = cmd.argparse.get_generic_parent_parser(include_version=True) wtt_description = 'Aliases: webdriver_test_tools, wtt' parser = cmd.argparse.ArgumentParser( description=wtt_description, epilog=cmd.argparse.ARGPARSE_EPILOG, parents=[generic_parent_parser], add_help=False ) # Subparsers command_desc = 'Run \'{} <command> --help\' for details'.format(parser.prog) subparsers = parser.add_subparsers( title='Commands', description=command_desc, dest='command', metavar='<command>' ) init_parser = init.add_init_subparser(subparsers, parents=[generic_parent_parser]) return parser
[docs]def main(): """Parse command line arguments and handle appropriately. Commands will return an exit code, which is passed to ``sys.exit()``. If an exception is caught during execution, the exit code is set to 1 and the error message is printed out. If no arguments are provided, a help message will be printed out and the exit code will be set to 1. """ parser = get_parser() args = parser.parse_args() # Default to 0 exit code exit_code = 0 try: if args.version is not None and args.version: version.main() elif args.command == 'init': init.main(args) # If no arguments were specified, print help else: exit_code = 1 parser.print_help() except Exception as e: # Set exit code and print exception exit_code = 1 print('') cmd.print_exception(e) sys.exit(exit_code)
if __name__ == '__main__': main()