#!/usr/bin/env python3

import sys
import traceback

from selcraft.cli import parse_arguments
from selcraft.logger import LogLevel, configure_logger, logger


def main():
    try:
        cli_args, parser = parse_arguments()
        configure_logger(cli_args.log_level, getattr(cli_args, "log_file", None))

        if not cli_args.subcommand:
            logger.error("Subcommand required")
            parser.print_usage()
            return

        cli_args.func(cli_args)
    except Exception as ex:
        logger.error(f"Running selcraft failed: {ex}")
        if logger.level == LogLevel.DEBUG:
            traceback.print_exc()
        sys.exit(1)


if __name__ == "__main__":
    main()
