def _create_parser() -> CustomArgumentParser: parser = CustomArgumentParser( description='directory administration tool', formatter_class=ArgumentDefaultsHelpFormatter ) subparsers = parser.add_subparsers() Parser._add_user_child_parser(subparsers) Parser._add_status_child_parser(subparsers) return parser
def __init__(self, arguments: list) -> None: self.parser = CustomArgumentParser( description='directory administration tool', formatter_class=ArgumentDefaultsHelpFormatter) subparsers = self.parser.add_subparsers() self.add_user_child_parser(subparsers) self.add_group_child_parser(subparsers) self.add_unit_child_parser(subparsers) self.add_status_child_parser(subparsers) self.add_authenticate_child_parser(subparsers) self.parsed_arguments = self.parser.parse_args(arguments)
def add_authenticate_child_parser(subparsers) -> None: authenticate_parent = CustomArgumentParser(add_help=False) authenticate_parser = subparsers.add_parser( 'authenticate', parents=[authenticate_parent], help='authenticate a user') authenticate_parser.add_argument('authenticate', action='store_true') authenticate_parser.add_argument('--name', required=True) authenticate_parser.add_argument('--password', default='')
def create_parser() -> CustomArgumentParser: parser = CustomArgumentParser( description='host configuration tool', formatter_class=ArgumentDefaultsHelpFormatter ) subparsers = parser.add_subparsers() HostConfigMain.add_host_parser(subparsers) HostConfigMain.add_service_parser(subparsers) parser.add_argument( '--dry-run', action='store_true', help='do not save changes' ) parser.add_argument( '--host-file', help='path to host file', default='/srv/salt/pillar/host.sls' ) return parser
def add_host_parser(subparsers) -> None: host_parent = CustomArgumentParser(add_help=False) host_parser = subparsers.add_parser( 'host', parents=[host_parent], help='manage hosts' ) host_parser.add_argument('host', action='store_true') host_subparsers = host_parser.add_subparsers() add_parent = CustomArgumentParser(add_help=False) add_parent.add_argument('--name', required=True) add_parent.add_argument('--logical-address', required=True) add_parent.add_argument('--physical-address', required=True) add_parent.add_argument( '--canonical-names', nargs='+', metavar='CANONICAL_NAME', ) add_parent.add_argument( '--catch-all-domains', nargs='+', metavar='CATCH_ALL_DOMAIN' ) add_parser = host_subparsers.add_parser( 'add', parents=[add_parent], help='add or update a host' ) add_parser.add_argument('add', action='store_true') delete_parent = CustomArgumentParser(add_help=False) delete_parent.add_argument('--name', required=True) delete_parser = host_subparsers.add_parser( 'delete', parents=[delete_parent], help='delete a host' ) delete_parser.add_argument('delete', action='store_true') sort_parser = host_subparsers.add_parser( 'sort', help='sort the host file' ) sort_parser.add_argument('sort', action='store_true') list_parser = host_subparsers.add_parser('list', help='list all hosts') list_parser.add_argument('list', action='store_true')
def _add_user_child_parser(subparsers) -> None: user_parent = CustomArgumentParser(add_help=False) user_parser = subparsers.add_parser( 'user', parents=[user_parent], help='manage users' ) user_parser.add_argument('user', action='store_true') user_subparsers = user_parser.add_subparsers() add_parent = CustomArgumentParser(add_help=False) add_parent.add_argument('--user-name') add_parent.add_argument('--full-name', required=True) add_parent.add_argument('--password', required=True) add_parent.add_argument('--mail', required=True) add_parent.add_argument( '--groups', nargs='+', metavar='GROUP', ) add_parser = user_subparsers.add_parser( 'add', parents=[add_parent], help='add a user' ) add_parser.add_argument('add', action='store_true') delete_parent = CustomArgumentParser(add_help=False) delete_parent.add_argument('--user-name', required=True) delete_parent.add_argument('--full-name', required=True) delete_parser = user_subparsers.add_parser( 'delete', parents=[delete_parent], help='delete a user' ) delete_parser.add_argument('delete', action='store_true') search_parent = CustomArgumentParser(add_help=False) search_group = search_parent.add_mutually_exclusive_group(required=True) search_group.add_argument('--user-name') search_group.add_argument('--full-name') search_parser = user_subparsers.add_parser( 'search', parents=[search_parent], help='search for users' ) search_parser.add_argument('search', action='store_true') list_parser = user_subparsers.add_parser('list', help='list all users') list_parser.add_argument('list', action='store_true')
def add_unit_child_parser(subparsers) -> None: unit_parent = CustomArgumentParser(add_help=False) unit_parser = subparsers.add_parser('unit', parents=[unit_parent], help='manage units') unit_parser.add_argument('unit', action='store_true') unit_subparsers = unit_parser.add_subparsers() add_parent = CustomArgumentParser(add_help=False) add_parent.add_argument('--name', required=True) add_parser = unit_subparsers.add_parser('add', parents=[add_parent], help='add a unit') add_parser.add_argument('add', action='store_true') remove_parent = CustomArgumentParser(add_help=False) remove_parent.add_argument('--name', required=True) remove_parser = unit_subparsers.add_parser('remove', parents=[remove_parent], help='remove a unit') remove_parser.add_argument('remove', action='store_true') show_parent = CustomArgumentParser(add_help=False) show_parent.add_argument('--name', required=True) show_parser = unit_subparsers.add_parser('show', parents=[show_parent], help='show a unit') show_parser.add_argument('show', action='store_true') list_parser = unit_subparsers.add_parser('list', help='list all units') list_parser.add_argument('list', action='store_true')
def add_group_child_parser(subparsers) -> None: group_parent = CustomArgumentParser(add_help=False) group_parser = subparsers.add_parser('group', parents=[group_parent], help='manage groups') group_parser.add_argument('group', action='store_true') group_subparsers = group_parser.add_subparsers() add_parent = CustomArgumentParser(add_help=False) add_parent.add_argument('--name', required=True) add_parser = group_subparsers.add_parser('add', parents=[add_parent], help='add a group') add_parser.add_argument('add', action='store_true') remove_parent = CustomArgumentParser(add_help=False) remove_parent.add_argument('--name', required=True) remove_parser = group_subparsers.add_parser('remove', parents=[remove_parent], help='remove a group') remove_parser.add_argument('remove', action='store_true') show_parent = CustomArgumentParser(add_help=False) show_parent.add_argument('--name', required=True) show_parser = group_subparsers.add_parser('show', parents=[show_parent], help='show a group') show_parser.add_argument('show', action='store_true') list_parser = group_subparsers.add_parser('list', help='list all groups') list_parser.add_argument('list', action='store_true')
class Parser: def __init__(self, arguments: list) -> None: self.parser = CustomArgumentParser( description='directory administration tool', formatter_class=ArgumentDefaultsHelpFormatter) subparsers = self.parser.add_subparsers() self.add_user_child_parser(subparsers) self.add_group_child_parser(subparsers) self.add_unit_child_parser(subparsers) self.add_status_child_parser(subparsers) self.add_authenticate_child_parser(subparsers) self.parsed_arguments = self.parser.parse_args(arguments) def print_help(self) -> None: self.parser.print_help() @staticmethod def add_user_child_parser(subparsers) -> None: user_parent = CustomArgumentParser(add_help=False) user_parser = subparsers.add_parser('user', parents=[user_parent], help='manage users') user_parser.add_argument('user', action='store_true') user_subparsers = user_parser.add_subparsers() add_parent = CustomArgumentParser(add_help=False) add_parent.add_argument('--name', required=True) add_parent.add_argument('--first-name', required=True) add_parent.add_argument('--last-name', required=True) add_parent.add_argument('--password', required=True) add_parent.add_argument('--email', required=True) add_parser = user_subparsers.add_parser('add', parents=[add_parent], help='add a user') add_parser.add_argument('add', action='store_true') remove_parent = CustomArgumentParser(add_help=False) remove_parent.add_argument('--name', required=True) remove_parser = user_subparsers.add_parser('remove', parents=[remove_parent], help='remove a user') remove_parser.add_argument('remove', action='store_true') show_parent = CustomArgumentParser(add_help=False) show_parent.add_argument('--name', required=True) show_parser = user_subparsers.add_parser('show', parents=[show_parent], help='show a user') show_parser.add_argument('show', action='store_true') list_parser = user_subparsers.add_parser('list', help='list all users') list_parser.add_argument('list', action='store_true') @staticmethod def add_group_child_parser(subparsers) -> None: group_parent = CustomArgumentParser(add_help=False) group_parser = subparsers.add_parser('group', parents=[group_parent], help='manage groups') group_parser.add_argument('group', action='store_true') group_subparsers = group_parser.add_subparsers() add_parent = CustomArgumentParser(add_help=False) add_parent.add_argument('--name', required=True) add_parser = group_subparsers.add_parser('add', parents=[add_parent], help='add a group') add_parser.add_argument('add', action='store_true') remove_parent = CustomArgumentParser(add_help=False) remove_parent.add_argument('--name', required=True) remove_parser = group_subparsers.add_parser('remove', parents=[remove_parent], help='remove a group') remove_parser.add_argument('remove', action='store_true') show_parent = CustomArgumentParser(add_help=False) show_parent.add_argument('--name', required=True) show_parser = group_subparsers.add_parser('show', parents=[show_parent], help='show a group') show_parser.add_argument('show', action='store_true') list_parser = group_subparsers.add_parser('list', help='list all groups') list_parser.add_argument('list', action='store_true') @staticmethod def add_unit_child_parser(subparsers) -> None: unit_parent = CustomArgumentParser(add_help=False) unit_parser = subparsers.add_parser('unit', parents=[unit_parent], help='manage units') unit_parser.add_argument('unit', action='store_true') unit_subparsers = unit_parser.add_subparsers() add_parent = CustomArgumentParser(add_help=False) add_parent.add_argument('--name', required=True) add_parser = unit_subparsers.add_parser('add', parents=[add_parent], help='add a unit') add_parser.add_argument('add', action='store_true') remove_parent = CustomArgumentParser(add_help=False) remove_parent.add_argument('--name', required=True) remove_parser = unit_subparsers.add_parser('remove', parents=[remove_parent], help='remove a unit') remove_parser.add_argument('remove', action='store_true') show_parent = CustomArgumentParser(add_help=False) show_parent.add_argument('--name', required=True) show_parser = unit_subparsers.add_parser('show', parents=[show_parent], help='show a unit') show_parser.add_argument('show', action='store_true') list_parser = unit_subparsers.add_parser('list', help='list all units') list_parser.add_argument('list', action='store_true') @staticmethod def add_status_child_parser(subparsers) -> None: status_parent = CustomArgumentParser(add_help=False) status_parser = subparsers.add_parser('status', parents=[status_parent], help='show status information') status_parser.add_argument('status', action='store_true') @staticmethod def add_authenticate_child_parser(subparsers) -> None: authenticate_parent = CustomArgumentParser(add_help=False) authenticate_parser = subparsers.add_parser( 'authenticate', parents=[authenticate_parent], help='authenticate a user') authenticate_parser.add_argument('authenticate', action='store_true') authenticate_parser.add_argument('--name', required=True) authenticate_parser.add_argument('--password', default='')
def add_user_child_parser(subparsers) -> None: user_parent = CustomArgumentParser(add_help=False) user_parser = subparsers.add_parser('user', parents=[user_parent], help='manage users') user_parser.add_argument('user', action='store_true') user_subparsers = user_parser.add_subparsers() add_parent = CustomArgumentParser(add_help=False) add_parent.add_argument('--name', required=True) add_parent.add_argument('--first-name', required=True) add_parent.add_argument('--last-name', required=True) add_parent.add_argument('--password', required=True) add_parent.add_argument('--email', required=True) add_parser = user_subparsers.add_parser('add', parents=[add_parent], help='add a user') add_parser.add_argument('add', action='store_true') remove_parent = CustomArgumentParser(add_help=False) remove_parent.add_argument('--name', required=True) remove_parser = user_subparsers.add_parser('remove', parents=[remove_parent], help='remove a user') remove_parser.add_argument('remove', action='store_true') show_parent = CustomArgumentParser(add_help=False) show_parent.add_argument('--name', required=True) show_parser = user_subparsers.add_parser('show', parents=[show_parent], help='show a user') show_parser.add_argument('show', action='store_true') list_parser = user_subparsers.add_parser('list', help='list all users') list_parser.add_argument('list', action='store_true')
def add_status_child_parser(subparsers) -> None: status_parent = CustomArgumentParser(add_help=False) status_parser = subparsers.add_parser('status', parents=[status_parent], help='show status information') status_parser.add_argument('status', action='store_true')