un outil de sondage - retour accueil
git clone git://bebou.netlib.re/kun
Log | Files | Refs | README |
commit 9203c3a5e0b2fa047063e7f73d220194cc71ad95 parent 4fd824bae2f574032d46447e7de115e4d573dc44 Auterice: Arthur Pons <arthur.pons@unistra.fr> Date: Wed, 18 Sep 2024 15:47:22 +0200 Gestion de réponses nominatives Diffstat:
M | kun | | | 68 | ++++++++++++++++++++++++++++++++++++++++++++++++++++---------------- |
1 file changed, 52 insertions(+), 16 deletions(-)
diff --git a/kun b/kun @@ -1,12 +1,33 @@ #! /bin/sh create() { + local id id=$(mktemp -d /tmp/kun.XXXXX) nano $id/question - cat $id/question + echo "id du sondage : ${id##/tmp/kun.}" +} + +addanswer() { + local name idrep repfile + read -p "votre nom : " name + repfile=$(mktemp /tmp/kun.$id/$name-XXXXX) + echo "les flèches pour parcourir les réponses" + echo "tabulation pour sélectionner une réponse" + echo "entrée pour valider le tout" + < /tmp/kun.$id/question fzy -m > $repfile + idrep=$(basename $repfile) + echo "id de la réponse : ${idrep##$name-}" +} + +modifyanswer() { + local idrep + read -p "id de la réponse : " idrep + [ ! -f "/tmp/kun.$id/$idrep" ] && { echo "Réponse n'existe pas";return; } + < /tmp/kun.$id/question fzy -m > /tmp/kun.$id/$idrep } answer() { + local c read -p "id du sondage : " id [ ! -d "/tmp/kun.$id" ] && { echo "Sondage n'existe pas";return; } c=$(<<-. fzy @@ -15,25 +36,40 @@ answer() { . ) case $c in - ("ajouter une réponse") - repfile=$(mktemp /tmp/kun.$id/XXXXX) - < /tmp/kun.$id/question fzy -m > $repfile - idrep=$(basename $repfile) - echo "id de la réponse : $idrep";; - ("modifier une réponse") - read -p "id de la réponse : " idrep - < /tmp/kun.$id/question fzy -m > /tmp/kun.$id/$idrep ;; + ("ajouter une réponse") addanswer ;; + ("modifier une réponse") modifyanswer ;; esac } see() { + local c read -p "id du sondage : " id [ ! -d "/tmp/kun.$id" ] && { echo "Sondage n'existe pas";return; } - find /tmp/kun.$id -type f -not -name question | - xargs cat | - sort | - uniq -c | - sort -rn + while [ ! "$c" = "quitter" ];do + c=$(<<-. fzy + quitter + toutes + une personne + . + ) + case $c in + ("toutes") + find /tmp/kun.$id -type f -not -name question | + xargs cat | + sort | + uniq -c | + sort -rn ;; + ("une personne") + while [ ! "$pers" = "quitter" ];do + pers=$(find /tmp/kun.$id/* -not -name 'question' | + cut -d'-' -f1 | + xargs -n1 basename | + sed '1i\quitter' | + fzy) + [ -f /tmp/kun.$id/$pers-* ] && cat /tmp/kun.$id/$pers-* + done ;; + esac + done } deletequestion() { @@ -46,19 +82,19 @@ deleteanswer() { read -p "id du sondage : " id [ ! -d "/tmp/kun.$id" ] && { echo "Sondage n'existe pas";return; } read -p "id de la réponse : " idrep - [ ! -f "/tmp/kun.$id" ] && { echo "Réponse n'existe pas";return; } + [ ! -f "/tmp/kun.$id/$idrep" ] && { echo "Réponse n'existe pas";return; } rm /tmp/kun.$id/$idrep } while [ ! "$c" = "quitter" ];do c=$(<<-. fzy + quitter créer un sondage répondre à un sondage consulter un sondage supprimer un sondage supprimer une réponse - quitter . )