# retoor <retoor@molodetz.nl>

import argparse
import sys
from devplacepy.cli.accounts import register_accounts
from devplacepy.cli.roles import register_roles
from devplacepy.cli.apikeys import register_apikeys
from devplacepy.cli.tokens import register_tokens
from devplacepy.cli.news import register_news
from devplacepy.cli.attachments import register_attachments
from devplacepy.cli.devii import register_devii
from devplacepy.cli.jobs import register_jobs
from devplacepy.cli.backups import register_backups
from devplacepy.cli.containers import register_containers
from devplacepy.cli.migrate import register_migrate
from devplacepy.cli.game import register_game
from devplacepy.cli.quiz import register_quiz
from devplacepy.cli.gateway import register_gateway
from devplacepy.cli.messaging import register_messaging
from devplacepy.cli.system import register_system


def build_parser():
    parser = argparse.ArgumentParser(description="DevPlace admin CLI")
    sub = parser.add_subparsers(title="commands", dest="command")

    register_roles(sub)
    register_apikeys(sub)
    register_tokens(sub)
    register_news(sub)
    register_attachments(sub)
    register_devii(sub)
    register_jobs(sub)
    register_backups(sub)
    register_containers(sub)
    register_migrate(sub)
    register_game(sub)
    register_quiz(sub)
    register_gateway(sub)
    register_messaging(sub)
    register_accounts(sub)
    register_system(sub)

    return parser


def main():
    parser = build_parser()
    args = parser.parse_args()
    if hasattr(args, "func"):
        args.func(args)
    else:
        parser.print_help()
        sys.exit(1)


if __name__ == "__main__":
    main()
