39 lines
905 B
Python
39 lines
905 B
Python
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)
|