#!/usr/bin/env python3

import argparse

from ungleich_dns import ungleichDNS
from ungleich_ripe import ungleichRIPE

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)

    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()