70 lines
2.2 KiB
Bash
Executable file
70 lines
2.2 KiB
Bash
Executable file
#!/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 1 ]; 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
|
|
failindex=0
|
|
|
|
for i in `ls ${folder}/*/*.tex`; do
|
|
cat $i | sed 1q | perl -ne 'if (m/^\\begin{recipe}{.*?}{.*?}{.*?}$/) { exit 0; } else { exit 1; }';
|
|
ret=$?
|
|
if [ $ret -eq 1 ]; 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 0; } else { exit 1; }';
|
|
ret=$?
|
|
if [ $ret -eq 1 ]; then failtemps=$(echo ${failtemps}+1 | bc); fi;
|
|
result $ret "TEMPS"
|
|
|
|
regexpains='(\d+\smiches?)|(\d+\spains?(\s\w+\s)*(\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 0; } else { exit 1; }";
|
|
ret=$?
|
|
if [ $ret -eq 1 ]; then failportions=$(echo ${failportions}+1 | bc); fi;
|
|
result $ret "PORTIONS"
|
|
|
|
cat $i | grep "\index{" > /dev/null
|
|
ret=$?
|
|
if [ $ret -eq 1 ]; then failindex=$(echo ${failindex}+1 | bc); fi;
|
|
result $ret "INDEX"
|
|
|
|
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"
|
|
echo "Test INDEX (une entrée dans l'index est écrite)" $failindex "erreurs"
|