Files
ccdi/deploy/render_nas_env.py

48 lines
1.2 KiB
Python

import argparse
from pathlib import Path
NAS_ENV_OVERRIDES = {
"CCDI_DB_HOST": "192.168.0.111",
"CCDI_DB_PORT": "40628",
}
def parse_args():
parser = argparse.ArgumentParser(description="Render NAS deployment .env for CCDI docker compose.")
parser.add_argument("--template", required=True)
parser.add_argument("--output", required=True)
return parser.parse_args()
def render_env_text(template_text: str) -> str:
rendered_lines = []
replaced_keys = set()
for line in template_text.splitlines():
key, separator, value = line.partition("=")
if separator and key in NAS_ENV_OVERRIDES:
rendered_lines.append(f"{key}={NAS_ENV_OVERRIDES[key]}")
replaced_keys.add(key)
continue
rendered_lines.append(line)
for key, value in NAS_ENV_OVERRIDES.items():
if key not in replaced_keys:
rendered_lines.append(f"{key}={value}")
return "\n".join(rendered_lines) + "\n"
def main():
args = parse_args()
template_path = Path(args.template)
output_path = Path(args.output)
template_text = template_path.read_text(encoding="utf-8")
output_path.write_text(render_env_text(template_text), encoding="utf-8")
if __name__ == "__main__":
main()