mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-11-04 03:03:18 -05: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()
 |