Je n’ai rien publié sur le blogue cette semaine car je planchais sur un réécriture complète de mon script Jameson
(dont le code source est accessible ici).
Je mentionnait en passant ce petit projet il y a un moment. Pour résumer, c’était un petit script que j’avais écrit rapidement pour raccourcir les commandes nécessaires à l’entretien de mon blogue. Hugo est vraiment super, mais les commandes qui l’entourent peuvent devenir répétitives et laborieuses. Un petit fichier bash m’a longtemps (presque trois ans !) facilité la vie.
Mais mon usage grandissant, j’ai ajouté fonctions sur fonctions… Importer les images, lister les articles brouillons, publier mon blogue en ligne… Le pauvre script bash devenait de plus en long, de moins en moins lisible ! Et il était de plus en plus compliqué d’y ajouter de nouvelles fonction, un vrai “code en spaghetti”.
Dans une autre vie, je faisais du python. Formé en autodidacte sur “Le Site du Zéro” (aujourd’hui devenu OpenClassroom), j’aimais bien ce langage que je trouvais intuitif, polyvalent, et efficace. Il était temps de revenir au source et de transformer ce petit script bricolé en vrai programme dont je serais carrément trop fier 😎.
Il m’a pris presque toute la semaine de tout reprendre à zéro (bon, je travaille aussi), mais j’y suis arrivé ! Toutes les fonctions principales ont été portées, et d’autres suivront. Le changement de langage et la programmation orientée objet me permettent de facilement ajouter des options.
Pour la syntaxe, je me suis inspiré d’un programme CLI appelé beets que j’utilise pour gérer ma bibliothèque de musique (audiothèque?) et qui permet de filtrer les résultats par des “queries”, et je suis très heureux de la fonctionnalité versatile qui en découle.
En bref, je suis très fier de moi ✌️. C’était très rafraîchissant de re-programmer nouveau un outil pour mon usage courant, et j’avais presque oublié à quel point j’aime programmer, enviant envie mon frangin qui le fait pour ses études. Un retour aux codes sources, en quelque sorte.
Je ferai plus tard un article détaillant les fonctionnalités ou présentant le code source, une fois les derniers bogues corrigés. En attendant, vous pouvez vous même y accéder sur mon github (license GPL-3.0).