"""Run local MinIO on macOS: python run_minio.py (Ctrl+C to stop).""" import os from pathlib import Path from dotenv import dotenv_values def main() -> None: api_dir = Path(__file__).resolve().parent local_dir = api_dir.parent / ".local" / "minio" binary = local_dir / "bin" / "minio" if not binary.is_file(): raise SystemExit("MinIO не собран. См. LOCAL_MINIO.md") values = {**dotenv_values(api_dir / ".env"), **os.environ} prefix = "OPENBAO__MINIO__" credentials = [prefix + "MINIO_ADMIN_LOGIN", prefix + "MINIO_ADMIN_PASSWORD"] if any(not values.get(key) for key in credentials): raise SystemExit("Укажи логин и пароль MinIO в api/.env") data_dir = local_dir / "data" data_dir.mkdir(parents=True, exist_ok=True) env = dict(os.environ) env.update( MINIO_ROOT_USER=values[credentials[0]], MINIO_ROOT_PASSWORD=values[credentials[1]], ) os.execve(binary, [str(binary), "server", str(data_dir), "--address", "127.0.0.1:9000", "--console-address", "127.0.0.1:9001"], env) if __name__ == "__main__": main()