#!/usr/bin/python

import argparse
import logging
import sys

from hwpack.builder import ConfigFileMissing, HardwarePackBuilder


if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "CONFIG_FILE",
        help="The configuration file to take the hardware pack information "
        "from.")
    parser.add_argument(
        "VERSION", help="The version of the hardware pack to create.")
    parser.add_argument(
        "--local-deb", action="append", dest="local_debs", default=[],
        metavar="LOCAL_DEB",
        help=("Include LOCAL_DEB in the hardware pack, even if it's an older "
              "version than a package that would be otherwise installed.  "
              "Can be used more than once."))
    parser.add_argument("--debug", action="store_true")
    args = parser.parse_args()
    ch = logging.StreamHandler()
    ch.setLevel(logging.INFO)
    formatter = logging.Formatter("%(message)s")
    ch.setFormatter(formatter)
    logger = logging.getLogger("hwpack")
    logger.setLevel(logging.INFO)
    logger.addHandler(ch)
    if args.debug:
        ch.setLevel(logging.DEBUG)
        formatter = logging.Formatter(
            "%(asctime)s - %(name)s - %(levelname)s - %(message)s")
        ch.setFormatter(formatter)
        logger.setLevel(logging.DEBUG)
    try:
        builder = HardwarePackBuilder(
            args.CONFIG_FILE, args.VERSION, args.local_debs)
    except ConfigFileMissing, e:
        sys.stderr.write(str(e) + "\n")
        sys.exit(1)
    builder.build()
