mirror of
https://github.com/hay-kot/mealie.git
synced 2025-07-05 20:42:23 -07:00
53 lines
1.7 KiB
Python
53 lines
1.7 KiB
Python
import argparse
|
|
from pathlib import Path
|
|
|
|
import gen_py_pytest_data_paths
|
|
import gen_py_pytest_routes
|
|
import gen_py_schema_exports
|
|
import gen_ts_locales
|
|
import gen_ts_types
|
|
from utils import log
|
|
|
|
CWD = Path(__file__).parent
|
|
|
|
|
|
def main():
|
|
parser = argparse.ArgumentParser(description="Run code generators")
|
|
parser.add_argument(
|
|
"generators",
|
|
nargs="*",
|
|
help="Specific generators to run (schema, types, locales, data-paths, routes). If none specified, all will run.", # noqa: E501 - long line
|
|
)
|
|
args = parser.parse_args()
|
|
|
|
# Define all available generators
|
|
all_generators = {
|
|
"schema": (gen_py_schema_exports.main, "schema exports"),
|
|
"types": (gen_ts_types.main, "frontend types"),
|
|
"locales": (gen_ts_locales.main, "locales"),
|
|
"data-paths": (gen_py_pytest_data_paths.main, "test data paths"),
|
|
"routes": (gen_py_pytest_routes.main, "pytest routes"),
|
|
}
|
|
|
|
# Determine which generators to run
|
|
if args.generators:
|
|
# Validate requested generators
|
|
invalid_generators = [g for g in args.generators if g not in all_generators]
|
|
if invalid_generators:
|
|
log.error(f"Invalid generator(s): {', '.join(invalid_generators)}")
|
|
log.info(f"Available generators: {', '.join(all_generators.keys())}")
|
|
return
|
|
|
|
generators_to_run = [(all_generators[g][0], all_generators[g][1]) for g in args.generators]
|
|
else:
|
|
# Run all generators (default behavior)
|
|
generators_to_run = list(all_generators.values())
|
|
|
|
# Run the selected generators
|
|
for func, name in generators_to_run:
|
|
log.info(f"Generating {name}...")
|
|
func()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|