import subprocess as sp import json import os def install_available(project_path): try: os.remove(os.path.join(project_path, "Pipfile.lock")) except Exception: pass if get_distro_name() == "alpine": sp.check_output(['pipenv','--site-packages', '--three'], cwd=project_path) sp.check_output(['pipenv', 'lock'], cwd=project_path) with open(os.path.join(project_path, "Pipfile.lock")) as f: content = json.load(f) for package in content["default"].keys(): try: sp.check_output(["apk", "add", f"py3-{package}"], stderr=sp.DEVNULL) except Exception: pass def clone_common(path='.'): sp.check_output(['git', 'clone', f'https://code.ungleich.ch/ungleich-public/ucloud_common'], cwd=path) def clone_etcd_wrapper(path='.'): sp.check_output(['git', 'clone', f'https://code.ungleich.ch/ahmedbilal/etcd3_wrapper'], cwd=path) def get_distro_name(): distro_name = None with open("/etc/os-release") as f: content = f.read() start = content.find("ID=") + 3 end = content.find("\n", start) distro_name = content[start:end] return distro_name