#!/usr/bin/python3
import sys
import argparse
import logging

log = logging.getLogger()


def main():
    parser = argparse.ArgumentParser(description="Static site generator.")
    subparsers = parser.add_subparsers(help="sub-command help", dest="command")

    from staticsite.cmd.check import Check
    Check.make_subparser(subparsers)

    from staticsite.cmd.build import Build
    Build.make_subparser(subparsers)

    from staticsite.cmd.serve import Serve
    Serve.make_subparser(subparsers)

    from staticsite.cmd.new import New
    New.make_subparser(subparsers)

    from staticsite.cmd.edit import Edit
    Edit.make_subparser(subparsers)

    from staticsite.cmd.site import Site
    Site.make_subparser(subparsers)

    args = parser.parse_args()
    if args.command is None:
        parser.print_help()
    else:
        handler = args.handler(args)
        res = handler.run()
        if res is not None:
            sys.exit(res)


if __name__ == "__main__":
    from staticsite.cmd.command import CmdlineError
    try:
        main()
    except CmdlineError as e:
        print(e, file=sys.stderr)
        sys.exit(1)
