Files
allwpilib/wpilibjExamples/generate_bazel_files.py

69 lines
1.8 KiB
Python

import json
import sys
def load_foldernames(filename):
output = []
with open(filename, "r") as f:
data = json.load(f)
for test_data in data:
output.append(test_data["foldername"])
return sorted(set(output))
def load_tests(filename):
output = []
with open(filename, "r") as f:
data = json.load(f)
for test_data in data:
if test_data.get("hasunittests", False):
output.append(test_data["foldername"])
return sorted(set(output))
def main():
examples = load_foldernames(
"wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/examples.json"
)
commands = load_foldernames(
"wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/commands/commands.json"
)
templates = load_foldernames(
"wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/templates/templates.json"
)
snippets = load_foldernames(
"wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/snippets/snippets.json"
)
tests = load_tests(
"wpilibjExamples/src/main/java/edu/wpi/first/wpilibj/examples/examples.json"
)
output_file = "wpilibjExamples/example_projects.bzl"
if len(sys.argv) == 2:
output_file = sys.argv[1]
with open(output_file, "w") as f:
f.write(
'EXAMPLES_FOLDERS = [\n "' + '",\n "'.join(examples) + '",\n]\n\n'
)
f.write(
'COMMANDS_V2_FOLDERS = [\n "' + '",\n "'.join(commands) + '",\n]\n\n'
)
f.write(
'SNIPPETS_FOLDERS = [\n "' + '",\n "'.join(snippets) + '",\n]\n\n'
)
f.write(
'TEMPLATES_FOLDERS = [\n "' + '",\n "'.join(templates) + '",\n]\n\n'
)
f.write('TEST_FOLDERS = [\n "' + '",\n "'.join(tests) + '",\n]\n')
if __name__ == "__main__":
main()