scripts-reco

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"