#!python
import os
import sys
from argparse import ArgumentParser
from archub import commands

def generate_commands():
    return commands.__all__

def main():
    if len(sys.argv) == 1 or (sys.argv[1] in ['-h', '--help'] and len(sys.argv) < 3):
        parser = ArgumentParser()
        parser.add_argument('command',
            choices=generate_commands()
        )
        parser.parse_args(['-h'])
        return 0
    parser = ArgumentParser(add_help=False)
    parser.add_argument('command', choices=generate_commands())
    args,leftover = parser.parse_known_args()
    sys.argv = [sys.argv[0]]
    sys.argv.extend(leftover)
    return getattr(commands, args.command)(leftover)


if '__main__' == __name__:
    sys.exit(main())
