From 5ab9cf1b7fa2cb3e63f9155e149ce8c67c6763a8 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Sun, 31 Jul 2022 09:20:18 +0000 Subject: [PATCH] Add class PodmanClient, add to ComposeFile --- podman-compose-backup.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/podman-compose-backup.py b/podman-compose-backup.py index db243c1..4f5095e 100644 --- a/podman-compose-backup.py +++ b/podman-compose-backup.py @@ -190,8 +190,38 @@ class VolumeBackupConfig: self.decompress_cmd = f"{self.compress_cmd} -d" +@define(kw_only=True) +class PodmanClient: + + podman_cmd: CommandArgs + podman_compose_cmd: CommandArgs + + def exec_podman( + self, + command: CommandArgs, + check: bool = True, + ) -> CompletedProcess: + return exec_cmd( + command=CommandArgs(self.podman_cmd + command), + check=check, + capture_stdout=True, + ) + + def exec_compose( + self, + command: CommandArgs, + check: bool = True, + ) -> CompletedProcess: + return exec_cmd( + command=CommandArgs(self.podman_compose_cmd + command), + check=check, + capture_stdout=True, + ) + + class ComposeFile: + podman: PodmanClient project_name: ProjectName environ: Dict[str, str] compose: ComposeDef @@ -199,9 +229,11 @@ class ComposeFile: def __init__( self, + podman: PodmanClient, *compose_files: Path, project_name: Optional[ProjectName] = None, ): + self.podman = podman self.compose_files = compose_files ref_dir = compose_files[0].parent self.project_name = project_name or ProjectName(ref_dir.name)