-
Aperçu de l’article
- Présentation de diverses astuces pour automatiser des outils CLI en combinant des scripts Bash avec Ruby.
- D’autres langages de script peuvent aussi convenir, mais l’article met l’accent sur la lisibilité et la flexibilité de Ruby.
-
Pourquoi Ruby plutôt que Bash ?
- Ruby fournit des types de données explicites (entiers, nombres à virgule flottante, chaînes, tableaux, hashes, etc.), ce qui améliore la lisibilité du code.
- Pour les utilisateurs macOS, si Homebrew est installé, Ruby est souvent déjà disponible, ce qui le rend très pratique.
- Ruby est utile dans les scripts de build et d’automatisation, comme avec CocoaPod ou Fastlane.
- Les bibliothèques standard permettent de manipuler facilement divers formats de données comme JSON, CSV et YAML.
-
Écrire des scripts Ruby en one-liner
- Un script en une ligne peut être exécuté avec la forme
ruby -e "<expression>". - On peut utiliser des pipes et des redirections pour récupérer et traiter le résultat d’autres outils CLI.
- L’option
-rpermet de précharger les bibliothèques nécessaires pour étendre les fonctionnalités.
- Un script en une ligne peut être exécuté avec la forme
-
Les combiner avec d’autres outils CLI
- En combinant Ruby avec AWS CLI, Git, GitHub CLI,
jq,curl, etc., on peut tirer le meilleur parti d’outils spécialisés dans une seule chaîne de travail. - Exemple de traitement de données JSON :
- Appeler une API avec
curl, puis parser les données avec la bibliothèque JSON de Ruby et afficher un champ précis, commetitle.
- Appeler une API avec
- Exemple de traitement de données YAML :
- Lire un fichier avec
cat config.yaml, puis le parser avec la bibliothèque YAML de Ruby pour extraire une valeur de configuration précise.
- Lire un fichier avec
- Il est possible de retraiter les résultats d’outils CLI avec Ruby pour construire des workflows d’automatisation plus souples.
- En combinant Ruby avec AWS CLI, Git, GitHub CLI,
-
Traitement de données non structurées (exemple avec Git Log)
- Toutes les données ne sont pas forcément structurées comme du JSON, du CSV ou du YAML.
- Grâce aux expressions régulières et aux fonctions de traitement de texte de Ruby, on peut lire logs et messages système ligne par ligne afin d’en extraire les informations utiles.
- Exemple de script Git Log :
- Extraire les logs de commit sur une ligne avec
git log --oneline #{file}. - Sélectionner interactivement les logs voulus avec
gum choose --limit 100. - Extraire le hash de commit de chaque log sélectionné, puis afficher le détail des modifications avec
git show. - Recomposer enfin les logs sélectionnés sous forme de checklist pour les afficher.
- Extraire les logs de commit sur une ligne avec
-
Conclusion
- En combinant des outils CLI et des scripts Ruby, on peut créer de puissants outils d’automatisation à partir de simples commandes assemblées.
- Cela permet d’automatiser efficacement des traitements de données complexes, l’analyse de logs et les tâches de gestion de versions afin de maximiser la productivité.
- Un petit début peut conduire à de grands changements, et l’auteur encourage chacun à lancer son propre side project.
- À noter que Perl peut aussi être utile, et que des ressources comme le Perl One-Liners Guide peuvent aider.
Aucun commentaire pour le moment.