in generate/util.py [0:0]
def split_tf_file(input_file, output_folder):
"""Splits a .tf file into multiple files based on the variable pattern.
Args:
input_file: Path to the input .tf file.
output_folder: Path to the folder where output files will be saved.
"""
os.makedirs(output_folder, exist_ok=True)
with open(input_file, "r", encoding="utf-8") as f:
content = f.read()
tf_content = re.sub(r"\"\$\{(.+)\}\"", "\\1", content)
pattern = rf"variable\s+\"{RANDOM_WORD}(file_.*?)\"\s+\{{\s*\}}"
tf_list = re.split(pattern, tf_content)
filename = "backend"
i = 0
j = 0
output_files = []
while i < len(tf_list):
tfdata = tf_list[i]
i += 1
if match := re.search(r"^file_(\S+)$", tfdata):
filename = match.group(1)
continue
j += 1
filename = filename or f"file_{j}"
filename = f"{filename}.tf"
output_file = os.path.join(output_folder, filename)
output_files.append(filename)
with open(output_file, "w", encoding="utf-8") as f:
f.write(tfdata)
filename = ""
print(f"Created files: {','.join(output_files)} in {output_folder}")