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