2026-05-06 08:07:28 -05:00
|
|
|
"""Ensure required CLI tools are installed."""
|
|
|
|
|
|
|
|
|
|
import os
|
|
|
|
|
import shutil
|
|
|
|
|
import subprocess
|
|
|
|
|
import sys
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def ensure_aws():
|
|
|
|
|
if shutil.which("aws"):
|
|
|
|
|
subprocess.run(["aws", "--version"], check=True)
|
|
|
|
|
return
|
|
|
|
|
print("Installing awscli...")
|
|
|
|
|
subprocess.run(
|
|
|
|
|
[sys.executable, "-m", "pip", "install", "--quiet", "--break-system-packages", "awscli"],
|
|
|
|
|
check=False,
|
|
|
|
|
)
|
|
|
|
|
local_bin = os.path.expanduser("~/.local/bin")
|
|
|
|
|
os.environ["PATH"] = f"{local_bin}:{os.environ['PATH']}"
|
|
|
|
|
github_path = os.environ.get("GITHUB_PATH")
|
|
|
|
|
if github_path:
|
|
|
|
|
with open(github_path, "a") as f:
|
|
|
|
|
f.write(f"{local_bin}\n")
|
|
|
|
|
subprocess.run(["aws", "--version"], check=True)
|
|
|
|
|
|
|
|
|
|
|
2026-08-29 21:28:28 +00:00
|
|
|
def ensure_python_modules():
|
2026-05-06 08:07:28 -05:00
|
|
|
try:
|
|
|
|
|
import jinja2
|
2026-08-29 21:28:28 +00:00
|
|
|
import yaml
|
2026-05-06 08:07:28 -05:00
|
|
|
except ImportError:
|
|
|
|
|
print("Installing jinja2 + pyyaml...")
|
|
|
|
|
subprocess.run(
|
|
|
|
|
[sys.executable, "-m", "pip", "install", "--quiet", "--break-system-packages", "jinja2", "pyyaml"],
|
|
|
|
|
check=True,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2026-08-29 21:28:28 +00:00
|
|
|
ensure_python_modules()
|
2026-05-06 08:07:28 -05:00
|
|
|
ensure_aws()
|
|
|
|
|
print("Setup complete")
|