#! /bin/bash

#### Différents tests pour vérifier que les arguments du script sont corrects
#2.b Il y en a au moins 2
if [ $# -lt 2 ] ; then
    echo "Erreur : Argument manquant"
    echo
    ./readme.sh
    exit 2
fi    

#2.c recupération de l'opération à appliquer
op="$1"

if [ "$op" = "len" ] ; then
    op='l'
elif [ "$op" = "mir" ]; then
    op='m'
elif [ "$op" = "sum" ]; then
    op='s'
elif [ "$op" = "bin" ]; then
    op='b'
elif [ "$op" = "dec" ]; then
    op='d'
fi    


#2.d récupération de la liste des entiers positifs
shift
args=$@

#2.e, 2.f test si les arguments suivants sont des entiers positifs
#entiers en vérifiant qu'une somme avec l'argument ne renvoie pas d'erreur
for i in $args; do
    isnum="$(expr 0 + "$i" 2>/dev/null)"
    if [ -z "$isnum" ] ; then
        echo "Erreur : Argument non entier"
        echo
        ./readme.sh
        exit 2
    fi

    if [ "$i" -lt 0 ] ; then
        echo "Erreur : Argument négatif"
        echo
        ./readme.sh
        exit 2
    fi
done
#### Fin des tests sur les arguments


#2.g exécuter l'opération sur chaque nombre
case "$op" in
    l)
        for i in $args; do
            ./len.sh "$i"
        done
        ;;

    m)
        for i in $args; do
            ./mirror.sh "$i"
        done
        ;;

    s)
        for i in $args; do
            ./sum_digit.sh "$i"
        done
        ;;

    b)
        for i in $args; do
            ./decimal_to_binary.sh "$i"
        done
        ;;

    d)
        for i in $args; do
            ./binary_to_decimal.sh "$i"
        done
        ;;

    *)
        echo "Erreur : Opération inconnue"
        echo
        ./readme.sh
        exit 2
esac

