Faire des qcm simplement - retour accueil
git clone git://bebou.netlib.re/qcm
Log | Files | Refs | README |
commit 32bf72699776ee55f37ba61e3d660fe7fff1d136 parent 66680403b43fd0498e353799a08715937ef646e6 Auteurice: Arthur Pons <arthur.pons@unistra.fr> Date: Sat, 9 Nov 2024 13:15:44 +0100 Intégration d'un affichage gnuplot pour les histo Si -g et que le système a gnuplot alors on affiche les résultats sous forme d'histogramme. Par contre ça affiche aussi les questions ouvertes de cette manière là donc pas ouf. Diffstat:
M | qcm.sh | | | 30 | +++++++++++++++++++++--------- |
1 file changed, 21 insertions(+), 9 deletions(-)
diff --git a/qcm.sh b/qcm.sh @@ -34,6 +34,16 @@ show() <<-. cat total : $tot . +gplot() gnuplot -e " + set term dumb; + set border 1+2; + set ytics scale 0 nomirror autofreq 1; + set xtics nomirror; + set yrange [0:*]; + plot '-' u 1:xtic(2) w histo not; +" + + calcandshow() { if [ -z "$uniqueanswers" ];then tot=0 else @@ -41,7 +51,7 @@ calcandshow() { grep -Eo "/$id/[^ ]+ " | cut -d'/' -f3- | # PARSAGE DE LOG sed 's,%\([0-9A-F][0-9A-F]\),\\\\\x\1,g' | xargs printf "%b\n" | grep -v "^$" | - sort | uniq -c | sort -rn) + sort | uniq -c | sort -rn | $plotcmd ) tot=$(echo "$uniqueanswers" | wc -l) fi @@ -93,20 +103,22 @@ demander() { kill $disppid $tail1pid $tail2pid; rm $tmpd/in } -while getopts "hl:u:" opt; do +nbq=4 +uopt="-u" +choix= +plotcmd="cat" +url="http://bebou.netlib.re" +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" ;; ( h ) usage; exit ;; + ( * ) echo "Option inconnue, voir l'aide en lançant qcm -h";exit 1;; esac done -url="${u:-http://bebou.netlib.re}" -logs="${l:-/var/log/nginx/access.log}" - -nbq=4 -uopt="-u" -choix= - tmpd=$(mktemp -d /tmp/qcm.XXX) id=$(echo "$tmpd" | cut -d '.' -f2)