def execute()

in azure-slurm/package.py [0:0]


def execute() -> None:
    expected_cwd = os.path.abspath(os.path.dirname(__file__))
    os.chdir(expected_cwd)

    print("Running from", expected_cwd)

    if not os.path.exists("libs"):
        os.makedirs("libs")

    argument_parser = argparse.ArgumentParser(
        "Builds Azure Slurm project with all dependencies.\n"
        + "If you don't specify local copies of scalelib or cyclecloud-api they will be downloaded from github."
    )
    argument_parser.add_argument("--scalelib", default=None)
    # argument_parser.add_argument("--swagger", default=None)
    argument_parser.add_argument("--cyclecloud-api", default=None)
    args = argument_parser.parse_args()

    cycle_libs = get_cycle_libs(args)

    parser = configparser.ConfigParser()
    ini_path = os.path.abspath("../project.ini")

    with open(ini_path) as fr:
        parser.read_file(fr)

    version = parser.get("project", "version")
    if not version:
        raise RuntimeError("Missing [project] -> version in {}".format(ini_path))

    if not os.path.exists("dist"):
        os.makedirs("dist")

    tf = tarfile.TarFile.gzopen(
        "dist/azure-slurm-pkg-{}.tar.gz".format(version), "w"
    )

    build_dir = tempfile.mkdtemp("azure-slurm")

    def _add(name: str, path: Optional[str] = None, mode: Optional[int] = None) -> None:
        path = path or name
        tarinfo = tarfile.TarInfo("azure-slurm/" + name)
        tarinfo.size = os.path.getsize(path)
        tarinfo.mtime = int(os.path.getmtime(path))
        if mode:
            tarinfo.mode = mode

        with open(path, "rb") as fr:
            tf.addfile(tarinfo, fr)

    packages = []
    for dep in cycle_libs:
        dep_path = os.path.abspath(os.path.join("libs", dep))
        _add("packages/" + dep, dep_path)
        packages.append(dep_path)
    mypip = shutil.which("pip3")
    print("my pip", mypip)
    check_call([mypip, "download"] + packages, cwd=build_dir)

    print("Using build dir", build_dir)
    by_package: Dict[str, List[str]] = {}
    for fil in os.listdir(build_dir):
        toks = fil.split("-", 1)
        package = toks[0]
        if package == "cyclecloud":
            package = "{}-{}".format(toks[0], toks[1])
        if package not in by_package:
            by_package[package] = []
        by_package[package].append(fil)

    for package, fils in by_package.items():
        
        if len(fils) > 1:
            print("WARNING: Ignoring duplicate package found:", package, fils)
            assert False

    for fil in os.listdir(build_dir):
        if "pyyaml" in fil.lower():
            print(f"WARNING: Ignoring unnecessary PyYaml {fil}, also it is platform (ubuntu/rhel) specific.")
            continue
        path = os.path.join(build_dir, fil)
        _add("packages/" + fil, path)

    _add("install.sh", "install.sh", mode=os.stat("install.sh")[0])
    _add("sbin/resume_fail_program.sh", "sbin/resume_fail_program.sh")
    _add("sbin/prolog.sh", "sbin/prolog.sh")
    _add("sbin/resume_program.sh", "sbin/resume_program.sh")
    _add("sbin/return_to_idle.sh", "sbin/return_to_idle.sh")
    _add("sbin/return_to_idle_legacyfin.sh", "sbin/return_to_idle_legacy.sh")
    _add("sbin/suspend_program.sh", "sbin/suspend_program.sh")
    _add("sbin/get_acct_info.sh", "sbin/get_acct_info.sh")
    _add("logging.conf", "conf/logging.conf")