Source code for pysecret.sh
# -*- coding: utf-8 -*-
import typing as T
import os
import json
import dataclasses
from pathlib import Path
from .sh_helper import load_var_value_from_shell_script
[docs]@dataclasses.dataclass
class BaseShellScriptSecret:
"""
A base class for environment secrets data container.
"""
@classmethod
def load(cls, path_sh: str):
data = load_var_value_from_shell_script(path_sh)
kwargs = {f.name: data.get(f.name) for f in dataclasses.fields(cls)}
return cls(**kwargs)
def to_json(self, pretty: bool = True) -> str:
kwargs = dict()
if pretty:
kwargs["indent"] = 4
return json.dumps(dataclasses.asdict(self), **kwargs)