Automatisation avec bash
Utilisation de bash pour simplifier le traitement de tâches en ligne de commandes
26/08/2021

L'utilisation des lignes de commandes peut parraitre compliquée au novice, cependant elle apporte beaucoup de facilité dans le traitement de masse.
Dès qu'il s'agit de traiter des fichiers dans plusieurs répertoires (3 peuvent suffire) il est intéressant de se pencher sur la solution en ligne de commandes.
Bash est un langage en ligne de commandes, il permet de rédiger des scripts (suite d'instructions) et facilite les traitements sur un système.
Bien que non natif sur les systèmes Windows, il est facile de se dôter de ce système en utilisant le client WSL (2) que je ne saurai que trop bien recommander ou encore le client gitbash.
Les autres systèmes d'exploitation (Mac et linux) disposent de leurs terminaux respectifs et ne nécessitent donc pas d'installation supplémentaire.
L'utilisation classique d'un script bash est par exemple l'utilisation d'une copie vers différents répertoires, par exemple, celui d'un git hook.
Il serait laborieux si 10 modules différents nécessitent l'ajout d'un même hook, d'aller se déplacer via un explorateur de fichiers dans l'arborescence de fichiers, cependant, il devient bien plus rapide de faire la même chose en ligne de commande :
#!/bin/bash | |
for module in *; do | |
cp ./pre-push $module/.git/hooks/pre-push | |
done |
Ces 5 lignes permettent de manière automatique de copier notre hook dans tous les modules, là où il devient long de le faire à la main.
De la même manière, il est possible d'utiliser un script de type phpCsFixer sur l'ensemble de ses fichiers de manière rapide plutôt que d'utiliser les fonctions équivalentes d'un IDE qui nécessiteraient d'ouvrir un à un les fichiers puis de leur appliquer la fonction.
Il est tout de même bon de retenir qu'il ne sert pas forcement d'automatiser une tâche qui sera réalisée 1x ou seulement à quelques reprises mais de manière très éloignée dans le temps mais plutôt celles qui sont redondantes (Tous les jours, toutes les heures, qui font partie d'un process récurrent).