43 lines
1007 B
Python
Executable File
43 lines
1007 B
Python
Executable File
#!/usr/bin/env python3
|
|
import argparse
|
|
import subprocess
|
|
import venv
|
|
from pathlib import Path
|
|
|
|
_DIR = Path(__file__).parent
|
|
_PROGRAM_DIR = _DIR.parent
|
|
_VENV_DIR = _PROGRAM_DIR / ".venv"
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("--dev", action="store_true", help="Install dev requirements")
|
|
args = parser.parse_args()
|
|
|
|
# Create virtual environment
|
|
builder = venv.EnvBuilder(with_pip=True)
|
|
context = builder.ensure_directories(_VENV_DIR)
|
|
builder.create(_VENV_DIR)
|
|
|
|
# Upgrade dependencies
|
|
pip = [context.env_exe, "-m", "pip"]
|
|
subprocess.check_call(pip + ["install", "--upgrade", "pip"])
|
|
|
|
# Install requirements
|
|
subprocess.check_call(
|
|
pip
|
|
+ [
|
|
"install",
|
|
"--extra-index-url",
|
|
"https://www.piwheels.org/simple",
|
|
"-f",
|
|
"https://synesthesiam.github.io/prebuilt-apps/",
|
|
"-e",
|
|
str(_PROGRAM_DIR),
|
|
]
|
|
)
|
|
|
|
if args.dev:
|
|
# Install dev requirements
|
|
subprocess.check_call(
|
|
pip + ["install", "-e", f"{_PROGRAM_DIR}[dev]"]
|
|
)
|