#!/usr/bin/env python

from __future__ import print_function
from sys import argv
from constrictor.dpkg import DPKGBuilder
from constrictor.control import BinaryControl
from constrictor.configreader import ConfigReader

DEFAULT_CONFIG_PATH = "./build-config.json"


def build_package(build_config_path, print_output_path):
    config = ConfigReader(build_config_path).load_config_file(build_config_path)

    output_directory = './build'

    control = BinaryControl(config['package'], config["version"], config["architecture"], config["maintainer"],
                            config["description"])

    control.set_control_fields(config.get('extra_control_fields', {}))

    d = DPKGBuilder(output_directory, control, config.get("directories"), config.get("links"),
                    config.get("maintainer_scripts"))

    output_path = d.build_package()

    if print_output_path:
        print(output_path)


def main():
    args = argv

    if "-p" in args:
        print_output_path = True
        args.remove("-p")
    else:
        print_output_path = False

    build_package(args[1] if len(argv) > 1 else DEFAULT_CONFIG_PATH, print_output_path)


if __name__ == '__main__':
    main()
