Files
alttpr-python/resources/ci/common/install.py
2022-09-16 13:00:15 -06:00

97 lines
2.5 KiB
Python

import common
import argparse
import os
import platform
import subprocess # do stuff at the shell level
env = common.prepare_env()
pip_requirements = os.path.join(".","resources","app","meta","manifests","pip_requirements.txt")
if not os.path.isfile(pip_requirements):
pip_requirements = os.path.join("..","..","..","resources","app","meta","manifests","pip_requirements.txt")
def run_install(PY_VERSION,USER):
# get executables
# python
# linux/windows: python
# macosx: python3
# pip
# linux/macosx: pip3
# windows: pip
PYTHON_PATH = env["PYTHON_EXE_PATH"]
PYTHON_EXECUTABLE = "python3" if "osx" in env["OS_NAME"] else "python"
PIP_PATH = env["PIP_EXE_PATH"]
PIP_EXECUTABLE = "pip" if "windows" in env["OS_NAME"] else "pip3"
PIP_EXECUTABLE = "pip" if "osx" in env["OS_NAME"] and "actions" in env["CI_SYSTEM"] else PIP_EXECUTABLE
if PY_VERSION == None:
PY_VERSION = 0
if USER == None:
USER = False
if float(PY_VERSION) > 0:
PYTHON_EXECUTABLE = "py"
PYTHON_PATH = env["PY_EXE_PATH"]
print("Installing to Python %.1f via Py Launcher" % float(PY_VERSION))
else:
print("Installing to Python %s" % platform.python_version())
print("Installing packages at %s level" % ("User" if USER else "Global"))
print()
print("Upgrading pip-")
# upgrade pip
args = [
PYTHON_PATH + PYTHON_EXECUTABLE,
'-' + str(PY_VERSION),
"-m",
"pip",
"install",
"--upgrade",
"--user",
"pip"
]
if not USER:
args.remove("--user")
if PY_VERSION == 0:
del args[1]
subprocess.check_call(args)
# if pip3, install wheel
if PIP_EXECUTABLE == "pip3":
print("Installing Wheel!")
args = [
PIP_PATH + PIP_EXECUTABLE,
"install",
"--user",
"-U",
"wheel"
]
if not USER:
args.remove("--user")
subprocess.check_call(args)
print()
# install listed dependencies
print("Installing dependencies")
print("-----------------------")
args = [
PIP_PATH + PIP_EXECUTABLE,
"install",
"--user",
"-r",
pip_requirements
]
if not USER:
args.remove("--user")
subprocess.check_call(args)
if __name__ == "__main__":
parser = argparse.ArgumentParser(add_help=False)
parser.add_argument('--py', default=0)
parser.add_argument('--user', default=False, action="store_true")
command_line_args = parser.parse_args()
PY_VERSION = vars(command_line_args)["py"]
USER = vars(command_line_args)["user"]
run_install(PY_VERSION,USER)