from actions_logging.app_logging import logger
import argparse
import os
from utils import generate_base_nexus_upload_path


def generate_nexus_upload_path(version, build_os, build_arch, branch, gha_run_number, release=False):
    base_url = generate_base_nexus_upload_path(version, branch, gha_run_number, release)
    return f"firefly/{base_url}/{build_os}/{build_arch}"


if __name__ == "__main__":
    # Parse command-line arguments
    parser = argparse.ArgumentParser(description="Get input parameters")
    parser.add_argument('--build_os', type=str, nargs='?', help='For which OS to create build for')
    parser.add_argument('--version', type=str, nargs='?', help='Build version')
    parser.add_argument('--build_arch', type=str, nargs='?', help='OS build architecture')
    parser.add_argument('--branch', type=str, nargs='?', help='From which branch is the build accuring')
    parser.add_argument('--gha_run_number', type=str, nargs='?', help='The run number GH has assigned to the build')
    parser.add_argument('--release', type=str, nargs='?', help='Is this a release build')

    args = parser.parse_args()
    if args.release == "true" or args.release == "True" or args.release == "release":
        logger.info("Preparing for a release build")
        release = True
    else:
        logger.info("Preparing for a nightly build")
        release = False

    upload_path = generate_nexus_upload_path(args.version, args.build_os, args.build_arch, args.branch,
                                             args.gha_run_number, release)
    logger.info(f"Nexus upload path: {upload_path}")

    gha_env_file = os.getenv('GITHUB_ENV')

    with open(gha_env_file, "a") as gha_env:
        gha_env.write(f"NEXUS_UPLOAD_PATH={upload_path}\n")
