Des scripts pour faciliter le reconditionnement de portables - retour accueil
git clone git://bebou.netlib.re/scripts-reco
Log | Files | Refs | README |
README.md (5590B)
1 # Scripts reconditionnement 2 3 Un ensemble de scripts facilitant l'évaluation de l'état d'un ordinateur sous 4 système Linux. Écrit initialement pour les besoins de 5 [Commown](https://commown.coop). Inspiré du travail de Louis, adapté en scripts 6 shell plus simples et plus portables. 7 8 ## Arboresence 9 10 . 11 ├── bin # Un dossier contenant du code factorisé 12 │ ├── creer_dispo_clavier.sh # Un script permettant de créer les dispositions de claviers dans keyboard 13 │ └── common.sh 14 ├── generique.sh # La suite de test la plus générique 15 ├── clavier # Dossier contenant les dispositions des claviers 16 │ └── omen.kbd # Une disposition de clavier 17 ├── README # Ce fichier 18 └── tests # Les fichiers de test. Généralement des scripts. 19 ├── audio 20 ├── blue.png 21 ├── bluetooth 22 ... 23 24 ## Usage 25 26 Lancer une suite de tests : 27 28 $ ./generique.sh 29 30 Il est possible qu'il vous soit demandé en cours de route d'entrer le mot de 31 passe du compte root ou le votre si vous êtes sudoers. 32 33 Si une suite de test est interrompue (crash, terminaison d'un test avec ctrl+c 34 parce qu'il buggait etc) il est possible de le relancer avec son identifiant. 35 L'identifiant de la suite de test est donné au lancement de la suite et est 36 automatiquement copié dans le presse papier du système. Si vous n'avez pas 37 modifié votre presse-papier depuis le lancement de la suite de test il suffit 38 de relancer la suite de test et en faisant `ctrl+shift+v` pour mettre 39 l'identifiant en argument : 40 41 $ ./generique.sh qfv 42 43 La suite de test reprendra automatiquement là où elle avait été laissée. 44 45 Si une suite de test est parvenue jusqu'au bout, la totalité du rapport, avec 46 son identifiant, sera mis dans le presse papier. 47 48 ## Fonctionnement général 49 50 L'idée est d'avoir un ensemble de tests sous forme de scripts dans le dossier 51 `tests`. Ces tests peuvent être assemblés dans une suite de test qui aide au 52 reconditionnement d'un PC portable. Le début d'une suite de test instanciera 53 certaines variables et fonctions qui peuvent être utilisées dans les tests. 54 Ces variables et fonctions sont détaillées par la suite. 55 56 ## Dépendances 57 58 test | liste dépendances 59 -----|------------------ 60 tous | shell, awk, grep, sed, sort, tous posix. Un ordinateur sous Linux. 61 rapport | dmidecode 62 écran | feh 63 webcam | ffmpeg 64 audio | aplay/arecord 65 wifi | iw 66 bluetooth | bluetoothctl (bluez) 67 clavier | fzy, xev, stdbuf 68 génération profil clavier | xev, stdbuf 69 luminosite | bc 70 connexion internet | nmcli, ping, ip 71 72 Sous debian ces dépendances peuvent-être installées en faisant : 73 74 $ sudo apt install feh dmidecode ffmpeg alsa-utils iw xclip fzy xev 75 76 A noter que `ffmpeg` est un paquet très lourd. Il pourrait être intéressant de 77 le remplacer. Le test de connexion internet n'a des chances de fonctionner 78 correctement que sous les linux avec systemd. 79 80 Par ailleurs l'écriture de test, bien que très légèrement facilitée par les 81 fonctions communes à tous les tests, nécessite au moins les bases en shell. 82 83 ## Ecrire un test 84 85 Un test est un script se trouvant dans le dossier `tests`. Il peut être 86 écrit dans le langage de son choix. Les variables et fonctions shell 87 disponibles pertinents lors d'un test lorsqu'il sera appelé dans une suite de 88 test sont : 89 90 Les variables 91 92 * `$tmpdir` - le chemin du dossier temporaire créé pour cette suite de test. 93 On peut y stocker des choses, pour le test en cours ou les suivants. 94 * `$nom_modele` - contient le nom du fichier de la suite de test en cours 95 moins son extension. Par exemple, si l'on lance `./generique.sh`, 96 `$nom_modele` contiendra `generique`. 97 * `$reponse` contient ce qui a été inséré par l'utilisateurice en réponse à 98 une demande `demander`. 99 100 Les fonctions 101 102 * `informer blabla` - Affiche un message informatif et passe directement à la 103 suite. 104 * `pause blabla` - Affiche un message informatif et attend que l'on appuie 105 sur entrée pour continuer. 106 * `demander blabla` - Affiche une question et invite à entrer une réponse 107 "oui" ou "non" (o/n) qui sera mise dans la variable `$reponse`. 108 * `sauver` - Stockera son entrée (stdin) dans le fichier temporaire de ce 109 test. Autrement dit on met dans stdin de sauver ce que l'on veut récupérer 110 dans le rapport final. 111 112 ## Ecrire une suite de test 113 114 Une suite de test est un script constitué d'un ensemble ordonné de tests se 115 trouvant dans `tests`. Cette suite de test peut à priori se trouver n'importe 116 où. Elle **doit** commencer par : 117 118 #! /usr/bin/env ./common.sh 119 120 Qui en fait script exécuté par `common.sh`. C'est ce script qui prépare les 121 fonctions et variables importantes. On utilise ensuite la fonction 122 `tester` suivi du nom d'un test existant pour déclarer les tests qui 123 seront exécutés : 124 125 tester rapport 126 tester ecran 127 tester audio 128 tester webcam 129 tester wifi 130 tester bluetooth 131 132 On fini par la fonction affichant le rapport de fin : 133 134 fin 135 136 ## Ecrire le profil d'un clavier 137 138 Pour faciliter les tests des claviers un script compagnon permet de facilement 139 inscrire dans un fichier la disposition du clavier d'un ordinateur. Pour cela 140 lancer 141 142 $ ./bin/creer_dispo_clavier.sh | tee clavier/modele.kbd 143 144 Il suffit ensuite de taper chaque touche dans l'ordre de son choix. Si une 145 touche est répétée où si l'on fait une erreur il sera toujours possible 146 d'ouvrir le fichier texte généré et le corriger à la main.