un outil de sondage - retour accueil
git clone git://bebou.netlib.re/kun
Log | Files | Refs | README |
commit dc5bb2d9ad51e9bedde1e0b6bc13f1f41b8694d7 parent 5f8c0f22cca367104bf7964f4ec4696786a1879e Auterice: Arthur Pons <arthur.pons@unistra.fr> Date: Wed, 18 Sep 2024 20:52:18 +0200 Factorisation du test de sondage Aussi, correction d'un bug où si l'on consultait une réponse d'une personne, ressortait du menu et retentait l'opération on ne pouvait pas parce que la valeur de $pers était toujours "quitter" Diffstat:
M | kun | | | 15 | ++++++++------- |
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/kun b/kun @@ -6,6 +6,7 @@ norm="\033[0m" die() { echo "$red$@$norm" >&2 ;return 1; } success() echo "$green$@$norm" >&2 +questionexists() { local id;id="$1";[ -d "/tmp/kun.$id" ]; } # créer un sondage # kun create @@ -56,7 +57,7 @@ modifyanswer() { deletequestion() { local id id="$1" - [ ! -d "/tmp/kun.$id" ] && { die "Sondage n'existe pas"; return 1; } + questionexists "$id" || { die "Sondage n'existe pas"; return 1; } rm -rf /tmp/kun.$id \ && success "Sondage $id supprimé" \ || die "Erreur dans la suppression de $id" @@ -67,7 +68,7 @@ deletequestion() { deleteanswer() { local id idrep id="$1";idrep="$2" - [ ! -d "/tmp/kun.$id" ] && { die "Sondage n'existe pas";return 1;} + questionexists "$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" \ @@ -79,7 +80,7 @@ deleteanswer() { result() { local id id="$1" - [ ! -d "/tmp/kun.$id" ] && { die "Sondage n'existe pas";return 1;} + questionexists "$id" || { die "Sondage n'existe pas"; return 1; } find /tmp/kun.$id -type f -not -name question | xargs cat | sort | uniq -c | sort -rn @@ -90,7 +91,7 @@ result() { getpeople() { local id id="$1" - [ ! -d "/tmp/kun.$id" ] && { die "Sondage n'existe pas";return 1;} + questionexists "$id" || { die "Sondage n'existe pas"; return 1; } find /tmp/kun.$id/* -not -name 'question' | cut -d'-' -f1 | xargs -n1 basename @@ -124,7 +125,7 @@ while [ ! "$c" = "quitter" ];do create "$id" ;; ("répondre à un sondage") read -p "id du sondage : " id - [ ! -d "/tmp/kun.$id" ] && { die "Sondage n'existe pas";continue; } + questionexists "$id" || { die "Sondage n'existe pas"; continue; } l=$(<<-. fzy ajouter une réponse modifier une réponse @@ -142,7 +143,7 @@ while [ ! "$c" = "quitter" ];do esac ;; ("consulter un sondage") read -p "id du sondage : " id - [ ! -d "/tmp/kun.$id" ] && { die "Sondage n'existe pas";continue;} + questionexists "$id" || { die "Sondage n'existe pas"; continue; } while [ ! "$t" = "quitter" ];do t=$(<<-. fzy quitter @@ -157,7 +158,7 @@ while [ ! "$c" = "quitter" ];do while [ ! "$pers" = "quitter" ];do pers=$(getpeople "$id" | sed '1i\quitter' | fzy) [ "$pers" != "quitter" ] && getanswer "$id" "$pers" - done ;; + done;pers="";; esac done ;; ("supprimer un sondage")