un outil de sondage - retour accueil
git clone git://bebou.netlib.re/kun
Log | Files | Refs | README |
commit 53277030bb56550bd150d3d1f6995530290851e7 parent 871ef784f9990b873bf45f513c379e3dc410ddbc Auteurice: Arthur Pons <arthur.pons@unistra.fr> Date: Wed, 20 Nov 2024 16:51:42 +0100 Gestion des réponses qui ne sont pas des options Et aussi des réponses qui sont vides Avant on avait pas d'erreur et on enregistrait tout de même une réponse Autrement dit si une personne répondait une option inexsitante elle n'avait pas répondu mais ne pouvait plus répondre non plus Diffstat:
M | commands.sh | | | 22 | +++++++++++++++++----- |
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/commands.sh b/commands.sh @@ -29,18 +29,30 @@ addanswer() { id="${1:?missing parameter}";name="${2:?missing parameter}";text="$3" _nameexists "$id" "$name" && { _die "$name est déjà pris pour le sondage {$id}";return 1;} - repfile=$(mktemp /tmp/kun.$id/$name-XXXXX) \ - || { _die "erreur à la création du fichier de réponse $refile";return 1; } - idrep=$(basename $repfile | cut -d'-' -f2) - if [ -n "$text" ];then echo "$text" | grep -f /tmp/kun.$id/question > $repfile + if [ -n "$text" ];then + if grep -q "^$text$" /tmp/kun.$id/question;then + repfile=$(mktemp /tmp/kun.$id/$name-XXXXX) \ + || { _die "erreur à la création du fichier de réponse $repfile";return 1; } + idrep=$(basename $repfile | cut -d'-' -f2) + echo "$text" > $repfile + else _die "Réponse $text n'est pas une option";return 1; + fi else _inform "les flèches pour parcourir les réponses tabulation pour sélectionner une réponse entrée pour valider le tout\n" _inform "Question : \n\n$(grep "^#" /tmp/kun.$id/question | sed 's,^#,,')" echo - < /tmp/kun.$id/question grep -v '^#' | fzy -m > $repfile + a=$(< /tmp/kun.$id/question grep -v '^#' | fzy -m) + if [ -n "$a" ];then + repfile=$(mktemp /tmp/kun.$id/$name-XXXXX) \ + || { _die "erreur à la création du fichier de réponse $repfile";return 1; } + idrep=$(basename $repfile | cut -d'-' -f2) + echo "$a" > $repfile + else + _die "Réponse vide";return 1; + fi fi [ -f "$repfile" ] || { _die "Erreur dans l'écriture de la réponse";return 1;}