123456789101112131415161718192021222324252627282930313233343536373839 |
- from __future__ import annotations
- import os
- import platform
- import subprocess
- import sys
- from typing import Sequence
- def main(argv: Sequence[str] | None = None) -> int:
- # platform.processor() changed at some point between these:
- # 11.2.3: arm
- # 12.3.1: arm64
- APPLE_ARM64 = sys.platform == "darwin" and platform.processor() in {"arm", "arm64"}
- cpus = int(subprocess.run(("sysctl", "-n", "hw.ncpu"), check=True, capture_output=True).stdout)
- memsize_bytes = int(
- subprocess.run(("sysctl", "-n", "hw.memsize"), check=True, capture_output=True).stdout
- )
- args = [
- "--cpu",
- f"{cpus//2}",
- "--memory",
- f"{memsize_bytes//(2*1024**3)}",
- ]
- if APPLE_ARM64:
- args = [*args, "--vm-type=vz", "--vz-rosetta", "--mount-type=virtiofs"]
- return subprocess.call(
- (
- "colima",
- "start",
- f"--mount=/var/folders:w,/private/tmp/colima:w,{os.path.expanduser('~')}:r",
- *args,
- )
- )
- if __name__ == "__main__":
- raise SystemExit(main())
|