"""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) def ensure_docker(): if shutil.which("docker"): subprocess.run(["docker", "version", "--format", "{{.Client.Version}}"], check=True) return print("WARNING: docker CLI not found — docker builds will fail", file=sys.stderr) def ensure_jinja2(): try: import jinja2 except ImportError: print("Installing jinja2 + pyyaml...") subprocess.run( [sys.executable, "-m", "pip", "install", "--quiet", "--break-system-packages", "jinja2", "pyyaml"], check=True, ) if __name__ == "__main__": ensure_jinja2() ensure_aws() ensure_docker() print("Setup complete")