mirror of
https://github.com/pybricks/pybricks-api.git
synced 2026-07-28 04:07:46 +00:00
This way we don't have to commit the generated scripts. While we do this, rename ExampleHub to ThisHub so that the common scripts can actually run.
40 lines
1.2 KiB
Python
Executable File
40 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""Generates hub-specific examples from common template script."""
|
|
|
|
import pathlib
|
|
|
|
# Make build directory.
|
|
dir_path = pathlib.Path(__file__).parent
|
|
build_path = dir_path / "build"
|
|
build_path.mkdir(exist_ok=True)
|
|
|
|
# Get list of scripts to be parsed.
|
|
file_paths = [f for f in dir_path.glob("*.py") if f.stem != "make_examples"]
|
|
|
|
# Go through all template scripts
|
|
for file_path in file_paths:
|
|
|
|
with open(file_path) as template:
|
|
|
|
# First line contains hub info
|
|
hubs = template.readline().strip().split()[3:]
|
|
|
|
print("Converting", template.name, "to", hubs)
|
|
|
|
for hub in hubs:
|
|
# Path to hub-specific output script.
|
|
gen_path = build_path / (file_path.stem + "_" + hub.lower() + ".py")
|
|
|
|
# Reset source script and skip over header.
|
|
template.seek(0)
|
|
template.readline()
|
|
|
|
# Open destination script:
|
|
with open(gen_path, "w") as dest_file:
|
|
|
|
# Read script line by line.
|
|
for line in template.readlines():
|
|
|
|
# Replace hub name if present.
|
|
dest_file.writelines(line.replace("ThisHub", hub))
|