wrapper: add Wrapper.should_exit

This commit is contained in:
InsanePrawn 2023-03-13 05:33:21 +01:00
parent d2d9cb6c7c
commit 389d44e776
2 changed files with 8 additions and 5 deletions

View file

@ -7,7 +7,7 @@ import sys
from config.state import config
from exec.file import makedir
from .wrapper import BaseWrapper, WRAPPER_PATHS
from .wrapper import Wrapper, WRAPPER_PATHS
DOCKER_PATHS = WRAPPER_PATHS.copy()
@ -19,7 +19,7 @@ def docker_volumes_args(volume_mappings: dict[str, str]) -> list[str]:
return result
class DockerWrapper(BaseWrapper):
class DockerWrapper(Wrapper):
type: str = 'docker'
def wrap(self):
@ -98,8 +98,9 @@ class DockerWrapper(BaseWrapper):
cmd = docker_cmd + kupfer_cmd
logging.debug('Wrapping in docker:' + repr(cmd))
result = subprocess.run(cmd)
exit(result.returncode)
if self.should_exit:
exit(result.returncode)
return result.returncode
def stop(self):
subprocess.run(

View file

@ -15,7 +15,7 @@ WRAPPER_PATHS = CHROOT_PATHS | {
}
class Wrapper(Protocol):
class WrapperProtocol(Protocol):
"""Wrappers wrap kupferbootstrap in some form of isolation from the host OS, i.e. docker or chroots"""
def wrap(self):
@ -37,11 +37,13 @@ class Wrapper(WrapperProtocol):
type: str
wrapped_config_path: str
argv_override: Optional[list[str]]
should_exit: bool
def __init__(self, random_id: Optional[str] = None, name: Optional[str] = None):
self.uuid = str(random_id or uuid.uuid4())
self.identifier = name or f'kupferbootstrap-{self.uuid}'
self.argv_override = None
self.should_exit = True
def filter_args_wrapper(self, args):
"""filter out -c/--config since it doesn't apply in wrapper"""