# DEVELOPER.md This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Workflow de développement **Toujours lancer depuis la racine du projet** (vérifié par le Makefile). ### Ajouter un nouveau script 1. Placer le script dans `local/bin/.sh` 2. Créer la documentation dans `local/share/doc/scripts-bash/.1.md` (format man Markdown) 3. Lancer `make build` — génère la page man dans `local/share/man/man1/.1` via Pandoc 4. Committer les trois fichiers (`local/bin/`, `local/share/doc/`, `local/share/man/`) 5. Pousser ### Commandes ```bash make build # Développeur : génère les pages man depuis les .1.md (nécessite Pandoc) make install # Utilisateur : déploie tout dans ~/.local/ make uninstall # Supprime les fichiers installés make clean # Supprime les pages man générées localement ``` ## Architecture ``` local/bin/ → scripts déployés dans ~/.local/bin (.sh retiré à l'install) local/share/doc/ → documentation source en Markdown (format man) local/share/man/ → pages man pré-générées via Pandoc (ne pas éditer manuellement) local/share/ytdll/ → config et libs pour le script ytdll ecoleA/ → scripts d'administration pour déploiements école servers/linux/ → scripts serveur Linux ``` ### Makefile `make install` lit les sources directement avec `$(wildcard ...)` — pas de fichiers de listing intermédiaires. Les scripts `.sh` sont installés sans extension dans `~/.local/bin`. Les autres (PHP, sans extension) sont copiés tels quels. `make build` est une cible développeur (nécessite Pandoc). Les pages man générées sont committées dans le dépôt pour que `make install` fonctionne sans Pandoc côté utilisateur. ### Documentation Chaque script doit avoir une fiche `local/share/doc/scripts-bash/.1.md` avec au minimum les sections `# NOM`, `# SYNOPSIS`, `# DESCRIPTION`. ### Remote Git Le remote `origin` utilise SSH (`git@git.abonnel.fr:cedricAbonnel/scripts-bash.git`). Les credentials ne transitent jamais dans l'URL. ### Signature GPG des releases `make install` vérifie la signature GPG du dernier tag avant d'installer. Chaque release doit être taguée et signée : ```bash git tag -s v1.x -m "Release v1.x" git push origin v1.x ``` Pour que les utilisateurs puissent vérifier, ils doivent importer la clé publique du développeur : ```bash gpg --keyserver keys.openpgp.org --recv-keys ```