34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
"""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()
|