WikiBtsSio

20150507GestionDunePoubelleSuite

Ce T.P. fait suite au T.P. poubelle : http://btsio.net/wakka.php?wiki=20150326GestionDunePoubelle

Partie I

  • Ici on va changer l'approche du problème, je vous donne un script (c.f. en bas du sujet) et il vous est demandé de réaliser une procédure de test complète qui doit démontrer (ou pas) que le script répond aux cahier des charges. On vous demande au préalable de proposer une version simplifiée du cahier des charges.

  • Si vous rencontrez un dysfonctionnement de l'application, exposez le clairement puis proposez une modification du script pour résoudre le problème.

  • Il est peut-être possible de simplifier le script sans perdre de fonctionnalités.

Attention de bien faire une procédure de test pour UN script particulier, ne changez surtout pas le code du script en cours de route sinon il faut refaire les tests depuis le début ...


Partie II
  • Il vous est demandé de proposer des améliorations au cahier des charges.
Par exemple : on obtient le mode d'emploi du script, si on utilise la commande « poubelle » sans paramètre.
Cela passe obligatoirement par la rédaction d'un complément au cahier des charges.

Ceci fait, on vous demande de modifier le script original pour répondre au nouveau cahier des charges.


Partie III
  • Modifier votre procédure de test pour tenir compte des améliorations que vous avez apportées à l'application.


Partie IV
  • Récupérer le cahier des charges de votre voisin, son script ainsi que sa procédure de test. Faites un rapport concernant celle-ci. Détectez tous les problèmes qui peuvent se présenter.



Le code source du script poubelle :

#!/bin/bash
echo "Bonjour"
echo "Valeur de param 0" $0
echo "Valeur de param 1" $1
echo "Valeur de param 2" $2
echo "Valeur de param # " $#
echo "Valeur de $ @ " $@

# Création du répertoire garbage pour l'utilisateur
# courant si il n'existe pas.
if [ "$#" -eq 0 ]
then
        echo "Vous devez spécifier obligatoirement un nom de fichier ..."
else
        echo "Nombre de paramètres = $#"
fi


if [ -d "$HOME/garbage" ]
then
        echo "Le dossier garbage existe."
else
        mkdir $HOME/garbage
fi


# -------------------------------------------------------------------
# un seul paramètre à la commande poubelle
# un nom-de-fichier

if [ "$#" -eq 1 ]
then
        echo "UN PARAMETRE"
        if [ -f "$1" ]
        then
                echo "Vous avez demandé de mettre le fichier $1 à la poubelle"
                mv $1 $HOME/garbage
        else
                echo "Vous devez indiquer un nom de fichier à mettre à la poubelle"
        fi


        if [ "$1" = "-l" ]
        then
                echo "Demande d'afficher le contenu de la poubelle"
                # On doit liste le contenu de la poubelle
                ls -al $HOME/garbage
        fi

        if [ "$1" = "-v" ]
        then
                # L'utilisateur demande de vider la corbeille
                # on va lui demander confirmation

                # si confirmation, on vide ...
                echo "Vous avez demandé de vider la corbeille, vous confirmez (Oui) ?"
                read reponse
                if [[ $reponse = "Oui" ]]
                then
                        rm $HOME/garbage/*
                fi
        fi


fi

# -------------------------------------------------------------------
# deux paramètres

if [ "$#" -eq 2 ]
then
        echo "DEUX PARAMETRES"

        # Cas de récupération d'un fichier
        if [ "$1" = "-r" ] || [ "$2" = "-r" ]
        then
                # Récupérer un fichier
                # Vérifions que le fichier = l'autre paramètre est bien à la poubelle
                # On commence par supposer que le fichier n'est pas à la poubelle
                fichierPoubelle=0

                if [ -f "$HOME/garbage/$1" ]
                then
                        # Le fichier est à la poubelle
                        fichierPoubelle=1
                        # Récupération du fichier de la poubelle vers $HOME
                        echo "Récupération du fichier $1 vers $HOME"
                        mv $HOME/garbage/$1 $HOME/
                fi

                if [ -f $HOME/garbage/$2 ]
                then
                        # Le fichier est à la poubelle
                        fichierPoubelle=2
                        # Récupération du fichier de la poubelle vers $HOME
                        echo "Récupération du fichier $2 vers $HOME"
                        mv $HOME/garbage/$2 $HOME/
                fi

        fi

        # Enlever un fichier définitivement de la corbeille
        if [ "$1" = "-v" ] || [ "$2" = "-v" ]
        then
                echo "SUPPRESSION définitive D'UN FICHIER"
                # On va supprimer un fichier de la corbeille
                # On commence par déterminer le nom du fichier à supprimer
                # il se trouve soit dans $1 soit dans $2
                if [ -f "$HOME/garbage/$1" ]
                then
                        # On va supprimer le fichier $1
                        echo "On va supprimer définitivement le fichier $1"
                        rm $HOME/garbage/$1
                fi

                if [ -f $HOME/garbage/$2 ]
                then
                        # On va supprimer le fichier $2
                        echo "On va supprimer définitivement le fichier $2"
                        rm $HOME/garbage/$2
                fi
        fi
fi

Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]