Uniformisation syntaxe temps et portions

script de validation de syntaxe
This commit is contained in:
Thomas Schwery 2011-02-23 21:41:48 +01:00
parent 2c3947a475
commit f5370aa2a2
27 changed files with 88 additions and 37 deletions

View file

@ -1,5 +1,4 @@
\begin{recipe}{Courgettes aux olives}{Pour 4 portions}{10 minutes + 15 \begin{recipe}{Courgettes aux olives}{4 portions}{10 minutes + 15 minutes cuisson}
minutes cuisson}
\index{Courgettes aux olives} \index{Courgettes aux olives}
\ing[1]{kg}{Courgettes} \ing[1]{kg}{Courgettes}

View file

@ -1,4 +1,4 @@
\begin{recipe}{Ratatouille provençale}{4 portions}{25minutes + 1heure de cuisson} \begin{recipe}{Ratatouille provençale}{4 portions}{25 minutes + 1 heure de cuisson}
\index{Ratatouille provençale} \index{Ratatouille provençale}
\ing[500]{g}{Aubergine} \ing[500]{g}{Aubergine}

View file

@ -1,4 +1,4 @@
\begin{recipe}{Sangria}{4 portions}{10 minutes + refroidir 2-3 heures} \begin{recipe}{Sangria}{4 portions}{10 minutes + 2-3 heures refroidir}
\index{Sangria} \index{Sangria}
\ing[7,5]{dl}{Vin rouge} \ing[7,5]{dl}{Vin rouge}
\ing[2,5]{dl}{D'eau gazeuse} \ing[2,5]{dl}{D'eau gazeuse}

View file

@ -1,5 +1,4 @@
\begin{recipe}{Salade de bananes au citron vert}{4 portions}{10 minutes \begin{recipe}{Salade de bananes au citron vert}{4 portions}{10 minutes + 3 heures de repos}
+ 3 heures de repos}
\index{Salade!Bananes au citron vert} \index{Salade!Bananes au citron vert}
\ing[2]{dl}{Eau} \ing[2]{dl}{Eau}

View file

@ -1,4 +1,4 @@
\begin{recipe}{Biscuit roulé}{Plaque 40x50 cm}{20 minutes} \begin{recipe}{Biscuit roulé}{1 plaque 40x50 cm}{20 minutes}
\index{Biscuit roulé} \index{Biscuit roulé}
\ing[3]{}{Jaunes d'oeufs} \ing[3]{}{Jaunes d'oeufs}

View file

@ -1,4 +1,4 @@
\begin{recipe}{Biscuit roulé aux pommes}{Plaque 40x50 cm}{20 minutes} \begin{recipe}{Biscuit roulé aux pommes}{1 plaque 40x50 cm}{20 minutes}
\index{Biscuit roulé!aux pommes} \index{Biscuit roulé!aux pommes}
\newstep \newstep
Suivre la recette du biscuit roulé pour la pâte Suivre la recette du biscuit roulé pour la pâte

View file

@ -1,4 +1,4 @@
\begin{recipe}{Brownies}{Plaques de 30x33 cm}{10 minutes + 20 minutes cuisson} \begin{recipe}{Brownies}{1 plaque de 30x33 cm}{10 minutes + 20 minutes cuisson}
\index{Brownies} \index{Brownies}
\newstep \newstep

View file

@ -1,4 +1,4 @@
\begin{recipe}{Cake au citron}{4 portion}{} \begin{recipe}{Cake au citron}{1 moule à cake 25cm}{15 minutes + 45 minutes}
\index{Cake!au citron} \index{Cake!au citron}
\ing[1]{}{Citron} \ing[1]{}{Citron}

View file

@ -1,5 +1,4 @@
\begin{recipe}{Croquets}{40 pièces}{10 minutes + 1 nuit repos + 12 \begin{recipe}{Croquets}{40 pièces}{10 minutes + 1 nuit repos + 12 minutes cuisson}
minutes cuisson}
\index{Croquets} \index{Croquets}
\ing[2]{}{Œufs} \ing[2]{}{Œufs}

View file

@ -1,4 +1,4 @@
\begin{recipe}{Gâteau à la crème}{1 plaque 30 cm diamètre}{1heure + 15 minutes cuisson} \begin{recipe}{Gâteau à la crème}{1 plaque 30 cm diamètre}{1 heure + 15 minutes cuisson}
\index{Gâteau!À la crème} \index{Gâteau!À la crème}
\index{Gâteau!Du Vully} \index{Gâteau!Du Vully}
\index{Gâteau!De Goumoens} \index{Gâteau!De Goumoens}

View file

@ -1,4 +1,4 @@
\begin{recipe}{Gâteau Rapidos}{Plaque 30 cm de diamètre}{25 minutes} \begin{recipe}{Gâteau Rapidos}{1 plaque à gâteau 30 cm}{25 minutes}
\index{Gâteau!Rapidos} \index{Gâteau!Rapidos}
\ing[100]{g}{Beurre} \ing[100]{g}{Beurre}

View file

@ -1,5 +1,4 @@
\begin{recipe}{Pains d'anis}{40 pièces}{15 minutes + 1 nuit + 10 minutes \begin{recipe}{Pains d'anis}{40 pièces}{15 minutes + 1 nuit + 10 minutes cuisson}
cuisson}
\index{Pains d'anis} \index{Pains d'anis}
\newstep \newstep

View file

@ -1,5 +1,4 @@
\begin{recipe}{Tarte aux poires}{Moule 30 cm de diamètre}{10minutes + 35 \begin{recipe}{Tarte aux poires}{1 plaque à gâteau 30 cm}{10 minutes + 35 minutes}
minutes}
\index{Tarte!aux poires} \index{Tarte!aux poires}
\ing[1]{}{Pâte brisée abaissée} \ing[1]{}{Pâte brisée abaissée}

View file

@ -1,4 +1,4 @@
\begin{recipe}{Tarte au vin cuit}{Moule de 30 cm de diamètre}{10 minutes + 20 minutes cuisson} \begin{recipe}{Tarte au vin cuit}{1 plaque à gâteau 30 cm}{10 minutes + 20 minutes cuisson}
\index{Tarte!au vin cuit} \index{Tarte!au vin cuit}
\ing[2]{dl}{Lait} \ing[2]{dl}{Lait}

View file

@ -1,5 +1,4 @@
\begin{recipe}{Tarte au vin cuit (Aline)}{Moule de 30 cm de diamètre} \begin{recipe}{Tarte au vin cuit (Aline)}{1 plaque à gâteau 30 cm}{5 minutes + 15 minutes cuisson}
{5 minutes + 15 minutes cuisson}
\index{Tarte!au vin cuit (Aline)} \index{Tarte!au vin cuit (Aline)}
\ing[2\fr12]{dl}{Crème entière} \ing[2\fr12]{dl}{Crème entière}

View file

@ -1,5 +1,4 @@
\begin{recipe}{Terrine de tomates au fromage de chèvre}{1 grande terrine: 8 portions} \begin{recipe}{Terrine de tomates au fromage de chèvre}{1 grande terrine: 8 portions}{20 minutes + 12 heures au frais}
{20 minutes + 12heures au frais}
\index{Terrine!De tomates au fromage de chèvre} \index{Terrine!De tomates au fromage de chèvre}
\ing[4]{feuilles}{Gélatine} \ing[4]{feuilles}{Gélatine}

View file

@ -1,4 +1,4 @@
\begin{recipe}{Panettone}{1 miche}{15 minutes de préparation + 1heure d'attente + 25minutes de cuisson} \begin{recipe}{Panettone}{1 pain de 400g}{15 minutes préparation + 1 heure attente + 25 minutes cuisson}
\index{Panettone} \index{Panettone}
\ing[1.1]{dl}{Lait} \ing[1.1]{dl}{Lait}

View file

@ -1,4 +1,4 @@
\begin{recipe}{Pâte à pain} {pain d'environ 400g} {15 minutes de préparation + 1 heure d'attente + 25 minutes de cuisson} \begin{recipe}{Pâte à pain}{1 pain de 400g}{15 minutes préparation + 1 heure attente + 25 minutes cuisson}
\index{Pâte!à pain} \index{Pâte!à pain}
\ing[1]{sachet}{Levure de boulanger spéciale pain} \ing[1]{sachet}{Levure de boulanger spéciale pain}

View file

@ -1,5 +1,4 @@
\begin{recipe}{Pommes de terre provençale}{4 portions}{25 minutes \begin{recipe}{Pommes de terre provençale}{4 portions}{25 minutes + 30 minutes cuisson}
+30 minutes cuisson}
\index{Pommes de terre!Provençale} \index{Pommes de terre!Provençale}
\ing[800]{g}{Pommes de terre} \ing[800]{g}{Pommes de terre}

View file

@ -1,5 +1,4 @@
\begin{recipe}{Pâtes aux petits légumes}{4 personnes}{15minutes + 20 \begin{recipe}{Pâtes aux petits légumes}{4 portions}{15 minutes + 20 minutes de cuisson}
minutes de cuisson}
\index{Pâtes!aux petits légumes} \index{Pâtes!aux petits légumes}
\ing[400]{g}{Pâtes fraîches} \ing[400]{g}{Pâtes fraîches}

View file

@ -1,5 +1,4 @@
\begin{recipe}{Nouilles sautées au poulet}{4 portions}{10 minutes + 2h \begin{recipe}{Nouilles sautées au poulet}{4 portions}{10 minutes + 2h repos + 10 minutes cuisson}
repos + 10 minutes cuisson}
\index{Nouilles!sautées au poulet} \index{Nouilles!sautées au poulet}
\ing[4]{filets}{Poulet coupé en dés} \ing[4]{filets}{Poulet coupé en dés}

View file

@ -1,4 +1,4 @@
\begin{recipe}{Flammenküche}{4 portions} {30 minutes + 10 minutes} \begin{recipe}{Flammenküche}{4 portions}{30 minutes + 10 minutes}
\index{Tarte!flambée} \index{Tarte!flambée}
\index{Flammenküche} \index{Flammenküche}

View file

@ -1,4 +1,4 @@
\begin{recipe}{Couscous}{4 personnes}{15 minutes} \begin{recipe}{Couscous}{4 portions}{15 minutes}
\index{Couscous} \index{Couscous}
\ing[1]{dl}{Eau} \ing[1]{dl}{Eau}

View file

@ -1,4 +1,4 @@
\begin{recipe}{Salade paysanne grecque}{Pour 4 personnes}{20 minutes} \begin{recipe}{Salade paysanne grecque}{4 portions}{20 minutes}
\index{Salade!Paysanne grecque} \index{Salade!Paysanne grecque}
\ing[1]{}{Concombre} \ing[1]{}{Concombre}

View file

@ -1,5 +1,4 @@
\begin{recipe}{Salade Niçoise}{4 personnes}{30 minutes + 10 minutes \begin{recipe}{Salade Niçoise}{4 personnes}{30 minutes + 10 minutes cuisson}
cuisson}
\index{Salade!Niçoise} \index{Salade!Niçoise}
\ing[4]{}{Œufs} \ing[4]{}{Œufs}

View file

@ -1,4 +1,4 @@
\begin{recipe}{Almondigas}{4 portions}{15minutes+ 2 heures repos + 30 minutes cuisson} \begin{recipe}{Almondigas}{4 portions}{15 minutes + 2 heures repos + 30 minutes cuisson}
\index{Boulettes de viande} \index{Boulettes de viande}
\index{Almondigas} \index{Almondigas}

62
syntax_check.sh Executable file
View file

@ -0,0 +1,62 @@
#!/bin/sh
printsuccess=0
printfail=1
folder="chapters"
while [ $# -gt 0 ]
do
case "$1" in
--success) printsuccess=1;;
--fail) printfail=1;;
--nosuccess) printsuccess=0;;
--nofail) printfail=0;;
--folder) folder="$2"; shift;;
*) echo >&2 \
"usage: $0 [--success] [--fail] [--nosuccess] [--nofail] [--folder path]"
error
exit 1;;
esac
shift
done
result() {
if [ $1 -eq 0 ]; then
if [ $printfail -eq 1 ]; then
printf "\033[01;31m[FAIL-%s]\t%s\033[00m\n" $2 $i
fi
else
if [ $printsuccess -eq 1 ]; then
printf "\033[01;32m[PASS-%s]\t%s\033[00m\n" $2 $i
fi
fi;
}
failligne=0
failtemps=0
failportions=0
for i in `ls ${folder}/*/*.tex`; do
cat $i | sed 1q | perl -ne 'if (m/^\\begin{recipe}{.*?}{.*?}{.*?}$/) { exit 1; } else { exit 0; }';
ret=$?
if [ $ret -eq 0 ]; then failligne=$(echo ${failligne}+1 | bc); fi;
result $ret "LIGNE"
cat $i | sed 1q | perl -ne 'if (m/{(\d+(\d+)?\s((\w|[éèà])+\s?)+(\s\+\s)?)+}$/) { exit 1; } else { exit 0; }';
ret=$?
if [ $ret -eq 0 ]; then failtemps=$(echo ${failtemps}+1 | bc); fi;
result $ret "TEMPS"
regexpains='(\d+\smiches?)|(\d+\spains?\s(\w+\s)?\d+g)'
regexportions='(\d+\sportions?)'
regexgateaux='(1\s(plaque)|(moule).*cm)'
regexmisc='(\d+(-\d+)?\s(\w+\s)*((pièces?)|(bacs?)|(pots?)))'
cat $i | sed 1q | perl -ne "if (m/{$regexpains|$regexportions|$regexgateaux|$regexmisc}/) { exit 1; } else { exit 0; }";
ret=$?
result $ret "PORTIONS"
if [ $ret -eq 0 ]; then failportions=$(echo ${failportions}+1 | bc); fi;
done
echo "Test LIGNE (ligne 'recipe' sur une ligne avec bon nombre d'arguments) : " $failligne "erreurs"
echo "Test TEMPS (le paramètre de temps pour la recette est présent et bien formaté) :" $failtemps "erreurs"
echo "Test PORTIONS (les portions sont sous un format listé)" $failportions "erreurs"