Add recipe generator and dish flattener

- create generate_recipe.py for universal template recipe generation
- support cartesian product expansion from recipes_manifest.yaml
- generate 72 unique recipes with proper filename disambiguation
- update Makefile with simplified validation using ksflatten
- keep ksflatten-relative script as-is for dish flattening

The generator reads recipe_templates.yaml and recipes_manifest.yaml to
produce recipe files that ksflatten then flattens into final dishes.
This commit is contained in:
Lukas Greve
2026-03-27 19:29:27 +01:00
parent 6f5d7478be
commit e9615b524d
5 changed files with 405 additions and 34 deletions
+11 -6
View File
@@ -12,21 +12,26 @@ help:
@echo " clean - Remove generated recipes"
@echo " install-deps - Install Python dependencies"
all: generate-recipes validate-recipes clean-dishes flatten-dishes
@echo "✓ All recipes generated, validated, and flattened to dishes"
all: generate-recipes flatten-dishes validate-recipes
@echo "✓ All recipes generated, flattened, and validated"
install-deps:
pip install -r requirements.txt
generate-recipes:
rm -f recipes/*.cfg
python3 generate_recipe.py \
@rm -f recipes/*.cfg
@python3 generate_recipe.py \
--manifest recipes_manifest.yaml \
--output-dir recipes/
validate-recipes:
python3 generate_recipe.py \
--validate recipes/*.cfg
@echo "Validating recipes..."
@for f in dishes/*.cfg; do \
if [ -f "$$f" ]; then \
echo " Processing: $$(basename $$f)"; \
ksflatten -c "$$f" -o /dev/null 2>&1 && echo " ✓ OK" || { echo " ✗ FAILED"; exit 1; }; \
fi; \
done
flatten-dishes:
@echo "Flattening recipes to dishes..."