un outil de sondage - retour accueil
git clone git://bebou.netlib.re/kun
Log | Files | Refs | README |
commit 40fc34b70836230be0c8969ce116eccbd4362f5c parent eb7eb7cfdbc1231c908d110cb03ca46f3e62279a Auterice: Arthur Pons <arthur.pons@unistra.fr> Date: Fri, 20 Sep 2024 16:08:53 +0200 Ajout d'un paramètre à modifyanswer Comme pour addanswer Un peu de modif dans les erreurs et sorties Diffstat:
M | commands.sh | | | 43 | ++++++++++++++++++++++++++----------------- |
M | kun.sh | | | 2 | +- |
2 files changed, 27 insertions(+), 18 deletions(-)
diff --git a/commands.sh b/commands.sh @@ -19,17 +19,17 @@ create() { } # ajouter une réponse à un sondage -# kun addanswer id votre_nom +# kun addanswer id votre_nom [text] addanswer() { local id name idrep repfile text id="$1";name="$2";text="$3" + _nameexists "$id" "$name" && { _die "Ce nom a déjà été pris";return 1;} repfile=$(mktemp /tmp/kun.$id/$name-XXXXX) \ || { _die "erreur à la création du fichier de réponse $name-$idrep";return 1; } idrep=$(basename $repfile | cut -d'-' -f2) - if [ -n "$text" ];then - echo "$text" | grep -f /tmp/kun.$id/question > $repfile - [ -f "$repfile" ] || { _die "Erreur dans l'écriture de la réponse";return 1;} + + if [ -n "$text" ];then echo "$text" | grep -f /tmp/kun.$id/question > $repfile else <<-. cat >&2 les flèches pour parcourir les réponses @@ -38,9 +38,10 @@ addanswer() { . < /tmp/kun.$id/question fzy -m > $repfile - [ -f "$repfile" ] || { _die "Erreur dans l'écriture de la réponse";return 1;} fi - _success "réponse $idrep soumise au sondage $id" + [ -f "$repfile" ] || { _die "Erreur dans l'écriture de la réponse";return 1;} + + _success "réponse $idrep de $name soumise au sondage $id" _success "recap de la réponse :" _success "$(cat $repfile)" printf "addanswer %s %s %s\n" "$id" "$name" "$idrep" @@ -49,17 +50,24 @@ addanswer() { # modifier une réponse existante # n'est pas tant une "modification" qu'une réécriture -# kun modifyanswer id id_de_réponse +# kun modifyanswer id id_de_réponse [text] modifyanswer() { - local idrep id name - id="$1";idrep="$2" - _answerexists || { _die "Réponse n'existe pas";return 1;} + local id idrep repfile text + id="$1";idrep="$2";text="$3" + _answerexists "$1" "$2" || { _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 \ - || { _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 + repfile="/tmp/kun.$id/$name-$idrep" + + if [ -n "$text" ];then echo "$text" | grep -f /tmp/kun.$id/question > $repfile + else < /tmp/kun.$id/question fzy -m > $repfile + fi + [ -f "$repfile" ] || { _die "Erreur dans l'écriture de la réponse";return 1;} + + _success "réponse $idrep de $name soumise au sondage $id" + _success "recap de la réponse :" + _success "$(cat $repfile)" + printf "modifyanswer %s %s %s\n" "$id" "$name" "$idrep" + printf "%s\n" $(cat $repfile) } # supprimer un sondage @@ -91,8 +99,9 @@ results() { local id id="$1" _questionexists "$id" || { _die "Sondage n'existe pas"; return 1; } - find /tmp/kun.$id -type f -not -name question | - xargs cat | + answers=$(find /tmp/kun.$id -type f -not -name question) + [ -z "$answers" ] && { _die "Le sondage $id n'a pas encore de réponse"; return 1; } + cat $answers | sort | uniq -c | sort -rn } diff --git a/kun.sh b/kun.sh @@ -25,7 +25,7 @@ if [ -n "$1" ];then case "$1" in (create) create "$2" && exit 0 || exit 1;; (addanswer) addanswer "$2" "$3" "$4" && exit 0 || exit 1;; - (modifyanswer) modifyanswer "$2" "$3" && exit 0 || exit 1;; + (modifyanswer) modifyanswer "$2" "$3" "$4" && exit 0 || exit 1;; (deletequestion) deletequestion "$2" && exit 0 || exit 1;; (deleteanswer) deleteanswer "$2" "$3" && exit 0 || exit 1;; (results) results "$2" && exit 0 || exit 1;;