Files
scripts-bash/DEVELOPER.md
T
cedricAbonnel 2949248446 fix: sécurité — remote SSH + vérification GPG à l'installation
- Remote origin passé en SSH (token retiré de l'URL)
- make install dépend de make verify (vérifie la signature GPG du dernier tag)
- Sans tag signé : avertissement non bloquant (bootstrap)
- Avec tag signé et clé invalide : erreur bloquante
- DEVELOPER.md : instructions pour signer les tags de release
- README.md : mention de l'import de clé GPG

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 22:14:05 +02:00

2.4 KiB

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/<nom>.sh
  2. Créer la documentation dans local/share/doc/scripts-bash/<nom>.1.md (format man Markdown)
  3. Lancer make build — génère la page man dans local/share/man/man1/<nom>.1 via Pandoc
  4. Committer les trois fichiers (local/bin/, local/share/doc/, local/share/man/)
  5. Pousser

Commandes

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/<nom>.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 :

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 :

gpg --keyserver keys.openpgp.org --recv-keys <ID_CLÉ>