|
@@ -1,51 +0,0 @@
|
|
|
-from __future__ import annotations
|
|
|
-
|
|
|
-import os
|
|
|
-import platform
|
|
|
-import subprocess
|
|
|
-from collections.abc import Sequence
|
|
|
-
|
|
|
-
|
|
|
-def main(argv: Sequence[str] | None = None) -> int:
|
|
|
- if not os.getenv("CI"):
|
|
|
- macos_version = platform.mac_ver()[0]
|
|
|
- macos_major_version = int(macos_version.split(".")[0])
|
|
|
- if macos_major_version < 14:
|
|
|
- raise SystemExit(f"macos >= 14 is required to use colima, found {macos_version}")
|
|
|
-
|
|
|
- cpus = os.cpu_count()
|
|
|
- if cpus is None:
|
|
|
- raise SystemExit("failed to determine cpu count")
|
|
|
-
|
|
|
- # SC_PAGE_SIZE is POSIX 2008
|
|
|
- # SC_PHYS_PAGES is a linux addition but also supported by more recent MacOS versions
|
|
|
- SC_PAGE_SIZE = os.sysconf("SC_PAGE_SIZE")
|
|
|
- SC_PHYS_PAGES = os.sysconf("SC_PHYS_PAGES")
|
|
|
- if SC_PAGE_SIZE == -1 or SC_PHYS_PAGES == -1:
|
|
|
- raise SystemExit("failed to determine memsize_bytes")
|
|
|
- memsize_bytes = os.sysconf("SC_PAGE_SIZE") * os.sysconf("SC_PHYS_PAGES")
|
|
|
-
|
|
|
- args = [
|
|
|
- "--cpu",
|
|
|
- f"{cpus//2}",
|
|
|
- "--memory",
|
|
|
- f"{memsize_bytes//(2*1024**3)}",
|
|
|
- ]
|
|
|
- if platform.machine() == "arm64":
|
|
|
- args = [*args, "--vm-type=vz", "--vz-rosetta", "--mount-type=virtiofs"]
|
|
|
- HOME = os.path.expanduser("~")
|
|
|
- rc = subprocess.call(
|
|
|
- (
|
|
|
- "colima",
|
|
|
- "start",
|
|
|
- f"--mount=/var/folders:w,/private/tmp/colima:w,{HOME}:r",
|
|
|
- *args,
|
|
|
- )
|
|
|
- )
|
|
|
- if rc != 0:
|
|
|
- return rc
|
|
|
- return subprocess.call(("docker", "context", "use", "colima"))
|
|
|
-
|
|
|
-
|
|
|
-if __name__ == "__main__":
|
|
|
- raise SystemExit(main())
|