refactor(docker): split bottles/docker/__init__.py into sibling modules
test / run tests/run_tests.py (pull_request) Successful in 14s
test / run tests/run_tests.py (pull_request) Successful in 14s
The single docker/__init__.py grew to ~555 lines holding the platform, its plan classes, the bottle handle, and the runsc probe. Split into: - util.py : Docker subprocess primitives + runsc_available - bottle_plan.py : DockerBottlePlan (+ its print method) - bottle_cleanup_plan.py : DockerBottleCleanupPlan - bottle.py : _DockerBottle handle class - platform.py : DockerBottlePlatform (the bulk) docker/__init__.py becomes a thin re-export shim so existing imports (claude_bottle.bottles.docker.DockerBottlePlatform, etc.) keep working.
This commit is contained in:
@@ -12,6 +12,17 @@ from typing import Iterable
|
||||
from ...log import die, info
|
||||
|
||||
|
||||
def runsc_available() -> bool:
|
||||
"""Return True if the Docker daemon has the gVisor (`runsc`) runtime
|
||||
registered. Called once per prepare; the result lives on the plan."""
|
||||
r = subprocess.run(
|
||||
["docker", "info", "--format", "{{json .Runtimes}}"],
|
||||
capture_output=True,
|
||||
text=True,
|
||||
)
|
||||
return r.returncode == 0 and "runsc" in r.stdout
|
||||
|
||||
|
||||
def require_docker() -> None:
|
||||
"""Fail with an install pointer if `docker` is not on PATH."""
|
||||
if shutil.which("docker") is None:
|
||||
|
||||
Reference in New Issue
Block a user