from pathlib import Path from shutil import copyfile from compose.rendered.entity import Rendered def _mk_dir(path: Path) -> None: if path.exists(): return path.mkdir(parents=True) def _mk_compose_dir(rendered: Rendered) -> None: _mk_dir(rendered.dest_paths.data_dir) vols = rendered.volumes if vols is None: return for vol in vols: _mk_dir(vol) def _mk_compose_env(rendered: Rendered) -> None: src = rendered.src_paths.env_file dest = rendered.dest_paths.env_file if src.exists() and not dest.exists(): _ = copyfile(src, dest) def write_raw(path: Path, data: str) -> None: with path.open("wt") as f: _ = f.write(data) def write(rendered: Rendered) -> None: funcs = (_mk_compose_dir, _mk_compose_env) for func in funcs: func(rendered) write_raw(rendered.dest_paths.compose_file, rendered.data)