vendredi 9 janvier 2026

Compter les lignes d'un projet git

Ceci est un blog-note, il serait donc dommage de ne pas en profiter pour... Prendre des notes !

J'ai récemment voulu voir où j'en étais quant à la quantité de code produite pour un projet. Simple curiosité, pour me rendre compte.
Comment faire ? Comme ceci :

git ls-file | xargs wc-l

Bien sûr, si vous voulez plus de détail, comme le nombre de lignes des fichiers php, vous pouvez rajouter un grep.

git ls-file | grep '.php' | xargs wc -l

C'est tout.

Edit du 17 janvier 2026 : On me souffle dans l'oreillette que Tokei fait aussi très bien le boulot ! Merci à Ollivier Robert pour la découverte.

mercredi 7 janvier 2026

A worker was found in a dead state

Nouvelle joie de MacOS... Oui je sais, j'ai qu'à installer Linux. Mais non.

Je bossais tranquillement sur un playbook Ansible ce matin quand, tout à coup, le drame !

[ERROR]: A worker was found in a dead state

Mais que vais-je faire ? Comment vais-je survivre ? Quel avenir vais-je laisser à mes enfants ?
Et bien figure-toi, encore une fois : ça n'arrive pas sur Linux et c'est visiblement récurrent sur MacOS. Mais on aune solution !

Il suffit de lancer son playbook avec la variable d'environnement OBJC_DISABLE_INITIALIZE_FORK_SAFETY à yes :

OBJC_DISABLE_INITIALIZE_FORK_SAFETY=yes ansible-playbook ...

En gros, si j'ai bien compris (rien de sûr), c'est dû à l'utilisation de la méthode python fork() qui permet de créer un nouveau processus. Sauf que sur MacOS, si la bibliothèque utilisée n'est pas "fork-safe", alors l'OS t'envoie balader avec un plantage ou un deadlock.

Voilà, enjoy, même si c'est pas optimal.

vendredi 4 avril 2025

Excel et numéro de SIRET

Voilà un titre de billet qui doit vous donner une folle envie de le lire (non). Le sujet est pourtant très sérieux et j'y ai passé un peu de temps... Surtout parce que j'ai horreur de la bureautique.

Excel donc, le fameux, a une fâcheuse tendance à se foutre ouvertement du format des données qu'on lui colle, et les transforme donc selon sa volonté sans se poser davantage de question. Ce qui, notons-le, n'est pas le cas de LibreOffice. J'ai récemment eu un souci avec les numéros de SIRET dans un tableau Excel (on ne choisit pas toujours ses outils).

Un numéro de SIRET se présente sous la forme SIREN + NIC, à savoir 9 chiffres pour le SIREN et un bloc de 5 chiffres pour le NIC. Soit quelque chose comme :
12345678912345

Si on colle, importe ou récupère à partir d'un fichier .csv ce numéro de SIRET tel quel dans Excel, on obtient 1,23457E+13. Pas terrible. Sur LibreOffice il suffit d'élargir la cellule pour retrouver le numéro complet, pas sur Excel. Il faut donc formater la cellule, ou la colonne selon le besoin.

Habituellement, on découpe le numéro de SIREN en trois blocs de trois chiffres, puis on ajoute le NIC avec son bloc de 5 chiffres, ce qui donnerait dans notre exemple 123 456 789 12345.

Pour retrouver cet affichage, faire un clic droit sur la cellule puis Format de cellule.... Dans la catégorie, sélectionner Personnalisée puis renseigner dans le type :
000\ 000\ 000\ 00000

On valide. That's it!

lundi 24 février 2025

Notes en vrac #7

Septième (et petite) édition des notes en vrac.

Tech

Mises à jour

Licences


Vie Privée


Sur les blogs

lundi 11 septembre 2023

Tester localement et facilement une Pull Request

Lorsqu'on travaille sur un projet plus ou moins communautaire, ou à minima en équipe, il est nécessaire de tester les PRs avant de les valider, et donc de les intégrer. Seulement, aller chercher la branche distante du fork de la personne qui a fait la PR se révèle très fastidieux. Il existe néanmoins une solution qui permet de gagner pas mal de temps.


Nous allons ici voir comment récupérer directement le contenu de la PR dans la branche dans laquelle nous souhaitons la fusionner.

On se place dans un premier temps sur la branche concernée :

$ git checkout master

On la met à jour :

$ git pull origin master

On récupère ensuite l'ID de la Pull Request qu'on veut tester. Il s'agit du numéro que l'on trouve dans l'URL de la PR, ou le numéro qui est précédé d'un # sur la page de la PR.
La commande suivante nous permet alors de la récupérer dans une nouvelle branche :

$ git fetch origin pull/<ID>/head:<Nom de la branche>

Et basculez sur la branche en question.

$ git checkout <Nom de la branche>

Par exemple, pour créer la branche "TestPR325" qui correspond à la PR ID 325, il suffit d'utiliser :

$ git fetch origin/pull/325/head:TestPR325
$ git checkout TestPR325

Une fois vos tests terminés, retournez sur la branche de destination des PR, et recommencez la manipulation.

$ git checkout master

mardi 29 août 2023

Cloner tous les dépôts d'une même organisation

Il peut arriver que l'on ait besoin de cloner d'un coup tous les dépôts d'une même organisation. Ne me demandez pas pourquoi, mais ça peut arriver...


Pour commencer, nous aurons ici besoin de github-cli.

Installation avec Homebrew (MacOS oblige) :

$ brew install gh

On s'authentifie avec un jeton d'authentification :

$ gh auth login

On va maintenant se baser sur la commande suivante pour lister les dépôts de l'organisation :

$ gh repo list <nom de l'organisation> --limit 100 # N'est valable que s'il y a moins de 100 dépôts. Le nombre peut être adapté.

On utilise la sortie dans un while pour cloner le dépôt :

$ gh repo list <nom de l'organisation> --limit 70 | while read -r repo _; do gh repo clone "$repo" "$repo"; done

That's it !