un outil de sondage - retour accueil
git clone git://bebou.netlib.re/kun
Log | Files | Refs | README |
commit d6503ebc5cecd7c5e716984d232f5822a18f0c21 parent dc5bb2d9ad51e9bedde1e0b6bc13f1f41b8694d7 Auterice: Arthur Pons <arthur.pons@unistra.fr> Date: Wed, 18 Sep 2024 21:00:22 +0200 Ajout de deux tests Si une réponse existe et si une personne a déjà répondu dans un sondage ou pas. J'ai jamais fait autant de gestion d'erreur. Vrai programmeur 😎 Diffstat:
M | kun | | | 12 | +++++++----- |
1 file changed, 7 insertions(+), 5 deletions(-)
diff --git a/kun b/kun @@ -6,7 +6,9 @@ norm="\033[0m" die() { echo "$red$@$norm" >&2 ;return 1; } success() echo "$green$@$norm" >&2 -questionexists() { local id;id="$1";[ -d "/tmp/kun.$id" ]; } +questionexists() { local id;id="$1";[ -d "/tmp/kun.$id" ]; } +nameexists() { local id name;id="$1";name="$2";[ -f /tmp/kun.$id/$name-* ]; } +answerexists() { local id idrep;id="$1";idrep="$2";[ -f /tmp/kun.$id/*-$idrep ]; } # créer un sondage # kun create @@ -21,7 +23,7 @@ create() { addanswer() { local name idrep repfile id="$1";name="$2" - [ -f /tmp/kun.$id/$name-* ] && { die "Ce nom a déjà été pris";return 1;} + nameexists && { die "Ce nom a déjà été pris";return 1;} repfile=$(mktemp /tmp/kun.$id/$name-XXXXX) <<-. cat les flèches pour parcourir les réponses @@ -69,7 +71,7 @@ deleteanswer() { local id idrep id="$1";idrep="$2" questionexists "$id" || { die "Sondage n'existe pas"; return 1; } - [ ! -f "/tmp/kun.$id/$idrep" ] && { die "Réponse n'existe pas";return 1;} + answerexists "$id" "$idrep" || { die "Réponse n'existe pas";return 1;} rm /tmp/kun.$id/$idrep \ && success "Réponse $idrep supprimée" \ || die "Erreur dans la suppression de la réponse $idrep du sondage $id" @@ -102,8 +104,8 @@ getpeople() { getanswer() { local id pers id="$1";pers="$2" - [ ! -f /tmp/kun.$id/$pers-* ] \ - && { die "Cette personne n'a pas répondu à ce sondage";return 1;} + nameexists "$id" "$name" \ + || { die "Cette personne n'a pas répondu à ce sondage";return 1;} cat /tmp/kun.$id/$pers-* }