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 5f8276fb58355e01412f88eff1f1c5586793bec3
parent 83a63c6f919ebe4b3f5c5d4602f517cb45a8e4eb
Auteurice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Thu, 20 Mar 2025 15:11:22 +0100

Possibilité de sauter une touche test clavier/pad

Avant si une touche ne fonctionnait pas bah voilà, tant pis.
Maintenant on peut fermer la fenêtre de xev et ça nous fera passer à la
suivante. Avec la fonction sauver l'état final est sauvé dans le
rapport.

Remarque : les couleurs dans le rapport c'est pas ok pour copier/coller
dans le web, TODO

Diffstat:
Mtests/clavier | 20++++++++++++++------
Mtests/pad | 20++++++++++++++------
2 files changed, 28 insertions(+), 12 deletions(-)

diff --git a/tests/clavier b/tests/clavier @@ -2,30 +2,38 @@ pause "Il va falloir appuyer sur toutes les touches du clavier de gauche à droite, de haut en bas" update_layout() { - [ "$i" = "0" ] && filter="cat" || filter='sed -E "1,$i s/(.*)/\x1b[92m\1\x1b[0m/"' - eval < "$disposition" "$filter" | - paste - - - - | column -ts' ' + [ -f "$tmpdir/kbd_valid" ] && regex="$(< $tmpdir/kbd_valid paste -s -d '|' -)" || regex="^$" + < "$disposition" awk "/$regex/ {printf \"%s%s%s\n\",\"$vert\",\$0,\"$norm\";next}1" | + paste - - - | + column -ts ' ' } command -V mawk > /dev/null && awk_inter="mawk -W interactive" || awk_inter="stdbuf -i0 -o0 gawk" disposition=$(find clavier -type f -name '*.kbd' | fzy) [ ! -p "$tmpdir/kbd_fifo" ] && mkfifo $tmpdir/kbd_fifo + stdbuf -i0 -o0 xev | $awk_inter ' /^Key(Press|Release)/ {type=$1} /keycode [0-9]+/ && !(NR%2) {print substr($7,0,index($7,")")-1)}' > $tmpdir/kbd_fifo& awk_pid=$! -i=0 while read key;do clear;update_layout; - ps -q "$awk_pid" > /dev/null || break + if ! ps -q "$awk_pid" > /dev/null;then + stdbuf -i0 -o0 xev | $awk_inter ' + /^Key(Press|Release)/ {type=$1} + /keycode [0-9]+/ && !(NR%2) {print substr($7,0,index($7,")")-1)}' > $tmpdir/kbd_fifo& + awk_pid=$! + fi printf "verification de $key, ligne $i\n" while read entered;do if [ "$entered" = "$key" ];then - echo "oui";i=$(($i+1));break; + printf "^%s$\n" "$key" >> $tmpdir/kbd_valid;break else printf "reçu : %s, voulu : %s\n" "$entered" "$key" fi done < $tmpdir/kbd_fifo done < "$disposition" +update_layout | sauver + diff --git a/tests/pad b/tests/pad @@ -2,29 +2,37 @@ pause "Il va falloir appuyer sur toutes les touches du pad" update_layout() { - [ "$i" = "0" ] && filter="cat" || filter='sed -E "1,$i s/(.*)/\x1b[92m\1\x1b[0m/"' - eval < "$disposition" "$filter" + [ -f "$tmpdir/kbd_valid" ] && regex="$(< $tmpdir/kbd_valid paste -s -d '|' -)" || regex="^$" + < "$disposition" awk "/$regex/ {printf \"%s%s%s\n\",\"$vert\",\$0,\"$norm\";next}1" } command -V mawk > /dev/null && awk_inter="mawk -W interactive" || awk_inter="stdbuf -i0 -o0 gawk" disposition=clavier/pad [ ! -p "$tmpdir/kbd_fifo" ] && mkfifo $tmpdir/kbd_fifo + stdbuf -i0 -o0 xev | $awk_inter ' /^MotionNotify/ {print $1} /button [0-9]+/ {print substr($4,1,1)}' > $tmpdir/kbd_fifo& awk_pid=$! -i=0 while read key;do - clear;update_layout; - ps -q "$awk_pid" > /dev/null || break + clear + informer "1=clique gauche\n2=clique molette\n3=clique droit\nMotionNotify=bouger le curseur" + update_layout + if ! ps -q "$awk_pid" > /dev/null;then + stdbuf -i0 -o0 xev | $awk_inter ' + /^Key(Press|Release)/ {type=$1} + /keycode [0-9]+/ && !(NR%2) {print substr($7,0,index($7,")")-1)}' > $tmpdir/kbd_fifo& + awk_pid=$! + fi printf "verification de $key, ligne $i\n" while read entered;do if [ "$entered" = "$key" ];then - echo "oui";i=$(($i+1));break; + printf "^%s$\n" "$key" >> $tmpdir/kbd_valid;break else printf "reçu : %s, voulu : %s\n" "$entered" "$key" fi done < $tmpdir/kbd_fifo done < "$disposition" +update_layout | sauver