un outil de sondage - retour accueil
git clone git://bebou.netlib.re/kun
Log | Files | Refs | README |
commit 5f8c0f22cca367104bf7964f4ec4696786a1879e parent 510efa22e05ba94b73fe432c83ec74a3c3eab7a0 Auterice: Arthur Pons <arthur.pons@unistra.fr> Date: Wed, 18 Sep 2024 20:29:22 +0200 Ajout de gestion d'erreurs Et correction d'un petit bug lors de la sortie du menu de consultation des résultats Diffstat:
M | kun | | | 32 | ++++++++++++++++++++------------ |
1 file changed, 20 insertions(+), 12 deletions(-)
diff --git a/kun b/kun @@ -12,7 +12,7 @@ success() echo "$green$@$norm" >&2 create() { id=$(mktemp -d /tmp/kun.XXXXX) nano $id/question - echo "id du sondage : ${id##/tmp/kun.}" + success "id du sondage : ${id##/tmp/kun.}" } # ajouter une réponse à un sondage @@ -28,7 +28,8 @@ addanswer() { entrée pour valider le tout . - < /tmp/kun.$id/question fzy -m > $repfile + < /tmp/kun.$id/question fzy -m > $repfile \ + || { die "Erreur dans l'écriture de la réponse";return 1;} idrep=$(basename $repfile) echo "Recap de la réponse : \n" cat $repfile @@ -43,7 +44,11 @@ modifyanswer() { id="$1";idrep="$2" [ ! -f /tmp/kun.$id/*-$idrep ] && { die "Réponse n'existe pas";return 1;} name=$(basename /tmp/kun.$id/*-$idrep | cut -d'-' -f1) - < /tmp/kun.$id/question fzy -m > /tmp/kun.$id/$name-$idrep + < /tmp/kun.$id/question fzy -m > /tmp/kun.$id/$name-$idrep \ + || { die "Erreur dans la modification de la réponse"; return 1;} + success "Réponse $idrep de $name modifiée" + echo "Recap de la réponse : \n" + cat /tmp/kun.$id/$name-$idrep } # supprimer un sondage @@ -52,7 +57,9 @@ deletequestion() { local id id="$1" [ ! -d "/tmp/kun.$id" ] && { die "Sondage n'existe pas"; return 1; } - rm -rf /tmp/kun.$id + rm -rf /tmp/kun.$id \ + && success "Sondage $id supprimé" \ + || die "Erreur dans la suppression de $id" } # supprimer une réponse @@ -62,7 +69,9 @@ deleteanswer() { id="$1";idrep="$2" [ ! -d "/tmp/kun.$id" ] && { die "Sondage n'existe pas";return 1;} [ ! -f "/tmp/kun.$id/$idrep" ] && { die "Réponse n'existe pas";return 1;} - rm /tmp/kun.$id/$idrep && success "Réponse $idrep supprimée" + rm /tmp/kun.$id/$idrep \ + && success "Réponse $idrep supprimée" \ + || die "Erreur dans la suppression de la réponse $idrep du sondage $id" } # voir les résultats d'une question @@ -73,9 +82,7 @@ result() { [ ! -d "/tmp/kun.$id" ] && { die "Sondage n'existe pas";return 1;} find /tmp/kun.$id -type f -not -name question | xargs cat | - sort | - uniq -c | - sort -rn + sort | uniq -c | sort -rn } # voir la liste des personnes ayant répondu @@ -83,6 +90,7 @@ result() { getpeople() { local id id="$1" + [ ! -d "/tmp/kun.$id" ] && { die "Sondage n'existe pas";return 1;} find /tmp/kun.$id/* -not -name 'question' | cut -d'-' -f1 | xargs -n1 basename @@ -100,7 +108,7 @@ getanswer() { while [ ! "$c" = "quitter" ];do - t="" + t="";l="" c=$(<<-. fzy quitter créer un sondage @@ -117,12 +125,12 @@ while [ ! "$c" = "quitter" ];do ("répondre à un sondage") read -p "id du sondage : " id [ ! -d "/tmp/kun.$id" ] && { die "Sondage n'existe pas";continue; } - c=$(<<-. fzy + l=$(<<-. fzy ajouter une réponse modifier une réponse . ) - case $c in + case $l in ("ajouter une réponse") read -p "votre nom : " name while ! addanswer "$id" "$name";do @@ -148,7 +156,7 @@ while [ ! "$c" = "quitter" ];do ("une personne") while [ ! "$pers" = "quitter" ];do pers=$(getpeople "$id" | sed '1i\quitter' | fzy) - getanswer "$id" "$pers" + [ "$pers" != "quitter" ] && getanswer "$id" "$pers" done ;; esac done ;;