scripts-reco

Des scripts pour faciliter le reconditionnement de portables - retour accueil

git clone git://bebou.netlib.re/scripts-reco

Log | Files | Refs | README |

commit d500be923a601acba2701d6f78e2fb662de498aa
parent dceb2c76f7b788a4f3ea592f252da7e50a58f30e
Auteurice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Fri, 14 Mar 2025 18:42:51 +0100

Ajout du test clavier

Nouvelle variable accessible partout : model_name

Diffstat:
MREADME | 3+++
Mcommon.sh | 3++-
Momen.sh | 1+
Mtests/clavier | 29++++++++++++++++++-----------
4 files changed, 24 insertions(+), 12 deletions(-)

diff --git a/README b/README @@ -52,6 +52,9 @@ Les variables * `$tmpdir` - le chemin du dossier temporaire créé pour cette suite de test. On peut y stocker des choses, pour le test en cours ou les suivants. + * `$model_name` - contient le nom du fichier de la suite de test en cours + moins son extension. Par exemple, si l'on lance `./omen.sh`, `$model_name` + contiendra `omen`. Les fonctions diff --git a/common.sh b/common.sh @@ -5,7 +5,7 @@ set -e [ "$2" ] && id="$2" || id="$(mktemp -d /tmp/reco.XXX | cut -d'.' -f2)" tmpdir="/tmp/reco.$id" chmod -R 744 "$tmpdir" -printf "Identifiant du test : %s\n" "$id" +model_name="$(basename "$1" .sh)" trap "printf '$id' | xclip -selection clipboard" EXIT QUIT INT red="\033[91m";green="\033[92m" @@ -22,6 +22,7 @@ _ask() { } inform() { printf "$blue$@ (entrée pour commencer)$norm" >&2;read p; } +inform "Identifiant du test : $id, nom : $model_name" launch_test() { test_name="$1" diff --git a/omen.sh b/omen.sh @@ -2,6 +2,7 @@ launch_test rapport launch_test ecran +launch_test clavier launch_test audio launch_test webcam launch_test wifi diff --git a/tests/clavier b/tests/clavier @@ -1,11 +1,18 @@ -#checkkeys() { -# xargs -n2 sh -c ' -# echo "test de $2" -# xev | grep -E --line-buffered "^ *state 0x11?0" > a -# num_events=$(< a grep -cE "keycode $1") -# [ "$num_events" -gt 1 ] && echo "$2 ok" || echo "$2 not ok" -# ' -- -#} -## Clavier et pad -#keys=$(sudo dumpkeys | awk '/^keycode/ {print $2,$4}') -#echo "$keys" | checkkeys +update_layout() { + cat keyboard/$model_name.kbd | sed -E "1,$i s/(.*)/\x1b[92m\1\x1b[0m/" | + paste - - - - | column -ts' ' +} + +[ ! -p "$tmpdir/kbd_fifo" ] && mkfifo $tmpdir/kbd_fifo +stdbuf -o0 xev | stdbuf -o0 awk ' + /^Key(Press|Release)/ {type=$1} + /keycode [0-9]+/ {print type,$4,substr($7,0,index($7,")")-1)}' > $tmpdir/kbd_fifo& + +i=0 +while read key;do + clear;update_layout; + printf "verification de $key, ligne $i\n" + while read entered;do + [ "$entered" = "$key" ] && { echo "oui";i=$(($i+1));break; } || echo "non" + done < $tmpdir/kbd_fifo +done < keyboard/$model_name.kbd