diff --git a/src/python/jw/pkg/cmds/secrets/lib/base.py b/src/python/jw/pkg/cmds/secrets/lib/base.py new file mode 100644 index 00000000..408aa885 --- /dev/null +++ b/src/python/jw/pkg/cmds/secrets/lib/base.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- + +from __future__ import annotations + +from dataclasses import dataclass + +@dataclass +class Attrs: + + mode: int | None = None + owner: str | None = None + group: str | None = None + conf: str | None = None + + def update(self, rhs: Args|None) -> Args: + if rhs is not None: + if rhs.mode: + self.mode = rhs.mode + if rhs.owner: + self.owner = rhs.owner + if rhs.group: + self.group = rhs.group + if rhs.conf: + self.conf = rhs.conf + return self + + def emtpy(self) -> bool: + if self.mode is not None: + return False + if self.owner is not None: + return False + if self.group is not None: + return False + return True + diff --git a/src/python/jw/pkg/cmds/secrets/lib/util.py b/src/python/jw/pkg/cmds/secrets/lib/util.py index 353838fe..046e739d 100644 --- a/src/python/jw/pkg/cmds/secrets/lib/util.py +++ b/src/python/jw/pkg/cmds/secrets/lib/util.py @@ -1,9 +1,16 @@ # -*- coding: utf-8 -*- -from ....lib.ec.FileContext import FileContext +from __future__ import annotations + +from typing import TYPE_CHECKING + +from ....lib.FileContext import FileContext from ....lib.ec.Local import Local from .FilesContext import FilesContext +if TYPE_CHECKING: + from .base import Attrs + async def compile_template_file(target_path: str, default_attrs: Attrs|None=None, ctx: FileContext|None=None) -> bool: if ctx is None: ctx = Local()