Des scripts pour faciliter le reconditionnement de portables - retour accueil
git clone git://bebou.netlib.re/scripts-reco
Log | Files | Refs | README |
common.sh (2186B)
1 #! /bin/sh 2 3 set -e 4 5 # L'identifiant est celui passé en argument ou, s'il n'y en a pas, le résultat 6 # de la création d'un nouveau 7 [ "$2" ] && id="$2" || id="$(mktemp -d /tmp/reco.XXX | cut -d'.' -f2)" 8 9 tmpdir="/tmp/reco.$id" 10 chmod -R 744 "$tmpdir" 11 12 nom_modele="$(basename "$1" .sh)" 13 printf "$id" | xclip -selection clipboard 14 15 rouge="\033[91m";vert="\033[92m" 16 jaune="\033[93m";bleu="\033[94m" 17 norm="\033[0m" 18 up_one_line="\033[1F";del_line="\033[0K" 19 20 # demander question 21 # Poser une question à l'utilisateurice 22 demander() { 23 reponse="" 24 while [ "$reponse" != "o" ] && [ "$reponse" != "n" ];do 25 [ "$reponse" != "" ] && printf "$up_one_line$del_line" 26 printf "$jaune$@ (o/n) : $norm" >&2; read reponse 27 done 28 } 29 30 informer() { printf "$bleu$@$norm\n" >&2; } 31 pause() { printf "$bleu$@ (entrée pour continuer)$norm" >&2; read _; } 32 sauver() { tee -a "$tmpdir/$test_name"; } 33 34 # tester nom_du_test 35 # Lance un test 36 tester() { 37 test_name="$1" 38 # On saute le test s'il a déjà été fait (système de reprise d'une suite de test) 39 < "$tmpdir/histo" grep -q "^$1 pass" && return 40 clear 41 # On lance le code du test 42 . "tests/$test_name" 43 demander "$test_name ok ou pas ?" 44 [ "$reponse" = "o" ] && reponse=OK || reponse=NOK 45 <<-. sauver 46 $test_name : $reponse 47 ------- 48 . 49 # On modifie l'historique pour dire que le test a été passé 50 < "$tmpdir/histo" sed "/^$test_name/ s/$/ pass/" > "$tmpdir/tmp" 51 mv "$tmpdir/tmp" "$tmpdir/histo" 52 } 53 54 # fin 55 # Met fin à un test et construit le rapport final 56 fin() { 57 printf "test $model_name, id $id\n----------\n" >> "$tmpdir/rapport_complet" 58 # Pour tous les tests on construit les chemins de leurs rapports 59 [ -f "$tmpdir/histo" ] && < "$tmpdir/histo" awk -v tmp=$tmpdir '{ printf "%s/%s\n",tmp,$1 }' | 60 # on stocke leurs contenus dans le rapport complet en supprimant les lignes vides 61 xargs cat | grep . | tee -a "$tmpdir/rapport_complet" 62 < "$tmpdir/rapport_complet" xclip -selection clipboard 63 } 64 65 # On construit le fichier d'historique en récupérant les noms de tests dans le script 66 [ ! -f "$tmpdir/histo" ] && < "$1" awk '/tester/ { print $2 }' > "$tmpdir/histo" 67 68 # Et on le lance 69 pause "Identifiant du test : $id, nom : $nom_modele" 70 . "$1"