mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-10-28 16:54:19 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			54 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()
 |