You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.6 KiB
55 lines
1.6 KiB
#!/usr/bin/env python3 |
|
|
|
import argparse |
|
|
|
from ungleich_dns import ungleichDNS |
|
from ungleich_ripe import ungleichRIPE |
|
from ungleich_account import Account_Create |
|
from ungleich_weather import ungleichWeather |
|
|
|
VERSION = "0.0.3" |
|
|
|
class ungleichCLI(object): |
|
def __init__(self): |
|
self._init_parser() |
|
|
|
# FIXME: make it generic |
|
dns = ungleichDNS(self.parser, self.parser_parents) |
|
ripe = ungleichRIPE(self.parser, self.parser_parents) |
|
ripe = Account_Create(self.parser, self.parser_parents) |
|
ungleichWeather(self.parser, self.parser_parents) |
|
|
|
def _init_parser(self): |
|
self.parser = {} |
|
|
|
# Options _all_ parsers have in common |
|
self.parser['loglevel'] = argparse.ArgumentParser(add_help=False) |
|
self.parser['loglevel'].add_argument( |
|
'-v', '--verbose', |
|
action='count', |
|
dest='verbose', |
|
required=False) |
|
|
|
# Main subcommand parser |
|
self.parser['main'] = argparse.ArgumentParser( |
|
description='ungleich-cli ' + VERSION) |
|
self.parser['main'].add_argument( |
|
'-V', '--version', help='Show version.', action='version', |
|
version='%(prog)s ' + VERSION) |
|
self.parser['sub'] = self.parser['main'].add_subparsers( |
|
title="Commands", dest="command") |
|
|
|
# Parents used for all parsers |
|
self.parser_parents = self.parser['loglevel'] |
|
|
|
def commandline(self): |
|
args = self.parser['main'].parse_args() |
|
if 'func' in args: |
|
args.func(args) |
|
else: |
|
self.parser['main'].print_help() |
|
|
|
|
|
if __name__ == '__main__': |
|
cli = ungleichCLI() |
|
cli.commandline()
|
|
|