#!/bin/bash

# Tahiry Razafindralambo
# v1.0 du 2019.05.30

source ${LIBSH}/libeval.sh

a=2
b=3

read -e -p '(evaluation) $ ' -r line


# doit contenir la commande expr
[ $(echo "$line" | grep -c 'expr') -eq 0 ]
step $(vraifaux $?)  "Votre commande ne contient pas la commande expr" true

# doit contenir un ((
[ $(echo "$line" | grep -c "((") -ne 0 ]
step $(vraifaux $?)  "il y a un operateur de substitution arithmetique" true

# doit contenir un i
[ $(echo "$line" | grep -c "i") -ne 0 ]
step $(vraifaux $?)  "il y a la variable i" true

# doit contenir un a
[ $(echo "$line" | grep -c "a") -ne 0 ]
step $(vraifaux $?)  "il y a la variable a" true

# doit contenir un b
[ $(echo "$line" | grep -c "b") -ne 0 ]
step $(vraifaux $?)  "il y a la variable b" true

err="$(mktemp)"
fres="$(mktemp)"

eval $line 1>$fres 2>$err




#if [ $(echo "$line" | grep -c 'expr') -eq 1 ]
#then
#	echo "Non ! Votre commande ne doit pas contenir la commande : expr"
#	exit 1
#elif [ $(echo "$line" | grep -c "((") -eq 0 ]
#then
#	echo "Non ! Il faut mettre un operateur de substitution arithmetique"
#	exit 1
#elif [ $(echo "$line" | grep -c "a") -eq 0 ]
#then
#	echo "Non ! Il faut utiliser la variable a"
#	exit 1
#elif [ $(echo "$line" | grep -c "i") -eq 0 ]
#then
#	echo "Non ! Il faut utiliser la variable i"
#	exit 1
#elif [ $(echo "$line" | grep -c "b") -eq 0 ]
#then
#	echo "Non ! Il faut utiliser la variable b"
#	exit 1
#fi



echo $i > "$fres" 


# le fichier  d'erreur doit etre  vide
[ ! -s "$err" ]
step  $(vraifaux $?) "Votre calcul n'a pas produit une erreur" true

# un resultat existe
[  -s "$fres" ]
step  $(vraifaux $?)   "un resultat a ete produit" true

echo "Le resultat de votre calcul est: $(cat "$fres")"
status "$(cat  "$fres" "$fres" "$fres")"

rm -f "$fres" "$err"





#if [ -s "$err" ]
#then
#	echo "Erreur d'execution ou de syntaxe de la commande"
#	exit 1
#else
#	echo "Votre calcul n'a pas produit d'erreur !!!"
#fi

#if [  -s "$fres" ]
#then
#	echo "Le resultat de votre calcul est: $(cat "$fres")"
#	status "$(cat $fres" $fres" $fres" )"
#else
#	echo "Votre calcul n'a pas produit de resultat"
#	exit 1
#
#fi

#rm -f /tmp/err
#rm -f /tmp/res