Faire des qcm simplement - retour accueil
git clone git://bebou.netlib.re/qcm
Log | Files | Refs | README |
commit f78187719a48d04d404fad2133b914e3758ddd06 parent 178d2807408b0934fd212a1d6951650bb2e473b7 Auteurice: Arthur Pons <arthur.pons@unistra.fr> Date: Sat, 9 Nov 2024 13:48:33 +0100 Affichage standard forcé pour questions ouvertes plotcmd devient une variable locale de manière à pouvoir être suchargée pour les questions ouvertes et repartir directe sur sa valeur par défaut ensuite. Shell plus strictement POSIX mais on va faire genre parce que c'est implémenté presque partout. Aussi correction d'un bug, j'vais oublié de réécrire gnuplot correctement après un test. Diffstat:
M | README | | | 2 | +- |
M | qcm.sh | | | 12 | +++++++----- |
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/README b/README @@ -15,7 +15,7 @@ sur une autre variante Unix-like. ## Dépendances - * un shell posix (testé avec dash) + * un shell posix + local (testé avec dash) * un `mktemp` avec `-d` * `stdbuf` * un `sed` posix diff --git a/qcm.sh b/qcm.sh @@ -44,6 +44,7 @@ gplot() gnuplot -e " calcandshow() { + local plotcmd; plotcmd="$1" if [ -z "$uniqueanswers" ];then tot=0 else groupedanswers=$(echo "$uniqueanswers" | @@ -72,9 +73,10 @@ calcandshow() { } demander() { + local plotcmd case "$type" in - ( "ouverte" ) pattern=;; - ( "regex" ) pattern="${options:-[ABCD] } ";; + ( "ouverte" ) pattern=; plotcmd="cat";; + ( "regex" ) pattern="${options:-[ABCD] } "; plotcmd="cat";; ( * ) possibleanswers="ABCDEFGHIJQLMNOPQRSTUVWXYZ" [ -n "$options" ] && nbq=$(( $(echo "$options" | grep -o '~' | wc -l) + 1 )) @@ -90,10 +92,10 @@ demander() { tail -fn0 "$logs" | stdbuf -oL grep -E "$pattern" > $tmpd/notif & # PARSAGE DE LOG tail2pid=$! - calcandshow + calcandshow "$plotcmd" cat $tmpd/notif | while read newanswer ;do uniqueanswers=$(< $tmpd/in sort $uopt -k1,1) - [ "$olduniqueanswers" != "$uniqueanswers" ] && calcandshow + [ "$olduniqueanswers" != "$uniqueanswers" ] && calcandshow "$plotcmd" olduniqueanswers="$uniqueanswers" done & disppid=$! @@ -112,7 +114,7 @@ logs="/var/log/nginx/access.log" while getopts "hgl:u:" opt; do case $opt in ( l | u ) [ ! -z $OPTARG ] && eval "$opt='$OPTARG'" ;; - ( g ) command -v gnulot && plotcmd="gplot" ;; + ( g ) command -v gnuplot && plotcmd="gplot" ;; ( h ) usage; exit ;; ( * ) echo "Option inconnue, voir l'aide en lançant qcm -h";exit 1;; esac