Files
hla_framework_bd/cli/src/models/master_ioc_subs.py
T
labrec_bandBenjamin Labrecque a06fded916
Deploy / deploy (push) Failing after 42s
Use explicit agebd_env_suffix lower/upper (#65)
Sub env vars cicd

Co-authored-by: Benjamin Labrecque <labrecque.benji@gmail.com>
Reviewed-on: #65
2026-08-05 11:02:18 +02:00

46 lines
1.5 KiB
Python

import re
from pathlib import Path
from pydantic import BaseModel
class MasterIocSubs(BaseModel):
content: str
@classmethod
def read_from_file(cls, path: Path) -> "MasterIocSubs":
with open(path) as f:
file_content = f.read()
return MasterIocSubs(content=file_content)
def update_content(
self,
service_name: str,
starton: str = "0", # TODO: ok defaults?
autooff: str = "0", # TODO: ok defaults?
):
"""
Parses the configuration text and appends a new row before the closing bracket.
"""
quoted_service = f'"{service_name}"'
new_row = f' {{ "{{{{ agebd_env_suffix_upper }}}}", {quoted_service:<22} , "{starton}", "{autooff}" }}'
# Use regex to find the last closing curly brace of the configuration block
# This targets the line that contains only a lone closing brace, optional spaces, and maybe a comma/semicolon.
pattern = r"(\s*\n\s*\}(?:;|,)?\s*$)"
if re.search(pattern, self.content, re.MULTILINE):
# Insert our new row right before that closing brace line
self.content = re.sub(
pattern, f"\n{new_row}\\1", self.content, count=1, flags=re.MULTILINE
)
else:
raise ValueError(
"Could not locate the closing structure format '}' inside the configuration."
)
def write_to_file(self, path: Path) -> None:
with open(path, "w") as f:
f.write(self.content)