X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/b1644f824d7f4989a94b8a752aadee26cae25069..d15268ba6eadf89a38087995ff407f50418485fb:/lunaix-os/scripts/build-tools/integration/config_io.py diff --git a/lunaix-os/scripts/build-tools/integration/config_io.py b/lunaix-os/scripts/build-tools/integration/config_io.py deleted file mode 100644 index 15e1ba8..0000000 --- a/lunaix-os/scripts/build-tools/integration/config_io.py +++ /dev/null @@ -1,52 +0,0 @@ -from lcfg.api import ConfigIOProvider -from lcfg.utils import is_basic - -import re - -class CHeaderConfigProvider(ConfigIOProvider): - def __init__(self, header_save, - header_prefix="CONFIG_") -> None: - self.__header_export = header_save - self.__prefix = header_prefix - self.__re = re.compile(r"^[A-Za-z0-9_]+$") - - def export(self, env, config_dict): - lines = [] - for k, v in config_dict.items(): - result = [ "#define" ] - s = str.upper(k) - s = f"{self.__prefix}{s}" - - if isinstance(v, str) and self.__re.match(v): - s = f"{s}_{str.upper(v)}" - v = "" - - result.append(s) - - v = self.serialize_value(v) - if v is None or v is False: - result.insert(0, "//") - elif isinstance(v, str): - result.append(v) - - lines.append(" ".join(result)) - - with open(self.__header_export, 'w') as f: - f.write("\n".join(lines)) - - - def serialize_value(self, v): - if v is None: - return None - - if isinstance(v, bool): - return v - - if v and isinstance(v, str): - return f'"{v}"' - - if is_basic(v): - return str(v) - - raise ValueError( - f"serialising {type(v)}: not supported")