#!/bin/bash source ./messages/message.sh COMMAND="" TEST_FILE="" PWD=$(pwd) DIR="" process_args () { while :; do case $1 in -h|-\?|--help) usage exit 0 ;; v|--version) show_version exit 0 ;; -s|--script) COMMAND=$2 shift ;; -t|--test-file) [[ ! -f ${PWD}/${2} ]] && error "Test file (${2}) not found" TEST_FILE=${PWD}/${2} shift ;; -d|--directory) [[ ! -d $2 ]] && error "Directory ${2} not found" DIR=$2 shift ;; *) break esac shift done } function usage (){ msg "\n**Script de test de code retour**\n" msg "Ce script permet de comparer les codes retour attendu et ceux obtenus\n" msg "Dans le cadre du Mooc bash de la licence ADSILLH\n\n" } echo " Hououuuu ${PWD}" process_args $@ msg "Test $COMMAND script with $TEST_FILE\n\n" cd $DIR while IFS='' read -r i || [[ -n "$line" ]]; do args=$(echo $i | cut -d: -f1) e_code=$(echo $i | cut -d: -f2) msg "\nScript *${COMMAND}*, paramètres **${args}**\n" ret=$(./$COMMAND $args 2>&1) if [[ $? == $e_code ]] then msg "green" "\tLe code de retour est celui attendu (${e_code})\n" else msg "yellow" "\tLe code de retour n'est pas correct script : ${#} attendu : ${e_code}\n" fi msg "blue" "\tRetour : ${ret}\n" done < "$TEST_FILE" exit 0