def apply_var_to_folder()

in solutions_builder/cli/vars.py [0:0]


def apply_var_to_folder(solution_path, var_name, var_value):
  file_set = set()

  # Adding includes.
  for pattern in INCLUDE_PATTERNS:
    file_list = pathlib.Path(solution_path).rglob(f"{pattern}")
    file_set.update(set([str(x) for x in file_list]))

  # Removing excludes.
  for pattern in EXCLUDE_PATTERNS:
    file_list = pathlib.Path(solution_path).rglob(f"{pattern}")
    file_set = file_set - set([str(x) for x in file_list])

  modified_files_list = []
  for filename in list(file_set):
    if DEBUG:
      print(filename)

    with open(filename, "r") as file:
      # Replace variable
      filedata = file.read()
      filedata, count = replace_var_to_value(var_name, var_value, filedata)
      filedata = filedata + "\n"

      if count > 0:
        modified_files_list.append(filename)

      # If there's any changes, write back to the original file.
      if count > 0:
        with open(filename, "w") as file:
          file.write(filedata)

  return modified_files_list