import subprocess from pathlib import Path def run_make_task(target_dir: Path, task_name: str) -> tuple[str, bool, str]: """ Run a make task in the specified target directory. Args: target_dir: Path to the target directory (lambda or fargate) task_name: Name of the make task to run Returns: tuple: (target_name, success, error_message) """ target_name = target_dir.name try: result = subprocess.run( ["make", task_name], cwd=target_dir, capture_output=True, text=True, check=True, timeout=600 # 10 minute timeout per task ) return (target_name, True, "") except subprocess.CalledProcessError as e: error_msg = f"Exit code {e.returncode}\nSTDOUT:\n{e.stdout}\nSTDERR:\n{e.stderr}" return (target_name, False, error_msg) except subprocess.TimeoutExpired: return (target_name, False, "Command timed out after 10 minutes") except Exception as e: return (target_name, False, str(e))