Import("env")

from pathlib import Path

generator = File("generator/generator.py")

source_files = [
  File(str(f))
  for f in Path("generator").rglob("*")
  if f.is_file() and f.suffix in {".py", ".dbc"}
]

output_files = [
  f.name.replace(".dbc", "_generated.dbc")
  for f in Path("generator").rglob("*.dbc")
  if not f.name.startswith("_")
]

# include DBCs generated by python scripts
output_files += [
  f.name.replace(".py", "_generated.dbc")
  for f in Path("generator").rglob("*.py")
  if not f.name.startswith(("_", "test_")) and f.name != "generator.py"
]

generated = env.Command(
  target=list(set(output_files)),
  source=[generator] + source_files,
  action="python3 ${SOURCES[0]}",
)
