azure-slurm-install/package.py (48 lines of code) (raw):

import configparser import os import subprocess import sys import tarfile from typing import Optional def execute() -> None: expected_cwd = os.path.abspath(os.path.dirname(__file__)) os.chdir(expected_cwd) if not os.path.exists("libs"): os.makedirs("libs") 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( f"dist/azure-slurm-install-pkg-{version}.tar.gz", "w" ) def _add(name: str, path: Optional[str] = None, mode: Optional[int] = None) -> None: path = path or name tarinfo = tarfile.TarInfo(f"azure-slurm-install/{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) _add("install.sh", "install.sh", mode=os.stat("install.sh")[0]) _add("install_logging.conf", "conf/install_logging.conf") _add("installlib.py", "installlib.py") _add("install.py", "install.py") _add("slurmel8.repo", "slurmel8.repo") _add("slurmel9.repo", "slurmel9.repo") _add("ubuntu.sh", "ubuntu.sh", 600) _add("rhel.sh", "rhel.sh", 600) _add("AzureCA.pem", "AzureCA.pem") _add("suse.sh", "suse.sh", 600) _add("start-services.sh", "start-services.sh", 555) for fil in os.listdir("templates"): if os.path.isfile(f"templates/{fil}"): _add(f"templates/{fil}", f"templates/{fil}") if __name__ == "__main__": execute()