#!/usr/bin/python3

import argparse
import logging
import os
import sys

from copr_builder.copr_builder import CoprBuilder


log = logging.getLogger("copr.builder")
copr_log = logging.getLogger("copr.client")


if __name__ == '__main__':

    argparser = argparse.ArgumentParser(description='Copr builder')
    argparser.add_argument('-v', '--verbose', action='store_true', help='print debug messages')
    argparser.add_argument('-p', '--projects', nargs='*', dest='projects', action='store',
                           help='projects to build; if not given, all projects from config will be built')
    argparser.add_argument('-c', '--config', dest='config', action='store',
                           help='config file location')
    argparser.add_argument('-C', '--copr-config', dest='copr_config', action='store',
                           help='Copr config file location (defaults to "~/.config/copr")')
    args = argparser.parse_args()

    logging.basicConfig(stream=sys.stderr, format='%(name)s: %(message)s')
    if args.verbose:
        log.setLevel(logging.DEBUG)
        copr_log.setLevel(logging.DEBUG)
    else:
        log.setLevel(logging.INFO)
        copr_log.setLevel(logging.INFO)

    if not args.config:
        log.error('Config file must be specified.')
        sys.exit(1)

    if not os.path.exists(args.config):
        log.error('Config file "%s" not found.', args.config)
        sys.exit(1)

    if args.copr_config and not os.path.exists(args.copr_config):
        log.error('Copr config file "%s" not found.', args.copr_config)
        sys.exit(1)

    builder = CoprBuilder(args.config, args.copr_config)
    suc = builder.do_builds(args.projects)

    sys.exit(0 if suc else 1)
