48 lines
1.2 KiB
Python
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()
|