scripts-reco

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.