#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""vin_decoder can be used to get information out of VINs.
"""


import argparse

import logging
import sys
logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s',
                    level=logging.DEBUG,
                    stream=sys.stdout)

# vin_decoder modules
# Every vin_decoder tool that should be available through
#   vin_decoder TOOL
# has to be added to ``get_parser()`` and to ``main``.
import vin_decoder
from vin_decoder import decode


def get_parser():
    """Return the parser object for this script."""
    parser = argparse.ArgumentParser(description=__doc__,
                                     prog='vin_decoder')
    parser.add_argument('--version',
                        action='version',
                        version=('vin_decoder %s' %
                                 str(vin_decoder.__version__)))
    subparsers = parser.add_subparsers(dest='cmd')
    subparsers.add_parser('decode',
                          add_help=False,
                          parents=[decode.get_parser()],
                          help=("Decode a VIN"))
    return parser


def main(args):
    if args.cmd == 'decode':
        decode.main(args.vin)
    else:
        logging.error("Command '%s' is not implemented yet.", args.cmd)

if __name__ == '__main__':
    args = get_parser().parse_args()
    main(args)
