feat: Makefile remplace install.sh / prep.sh / uninstall.sh
- make install : déploie tout dans ~/.local/ (aucune dépendance externe) - make build : génère les pages man via Pandoc (développeur uniquement) - make uninstall: supprime les fichiers installés - make clean : supprime les pages man locales Plus de fichiers de listing .config/files_local-* intermédiaires. Plus de dépendance Pandoc côté utilisateur (pages man pré-buildées dans le dépôt). README : liste des scripts avec liens vers la documentation, embed Obsidian supprimé. DEVELOPER.md : workflow mis à jour. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+16
-16
@@ -4,46 +4,46 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
||||
|
||||
## Workflow de développement
|
||||
|
||||
**Toujours lancer depuis la racine du projet** (vérifié par les scripts eux-mêmes).
|
||||
**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 `prep.sh` — il génère la page man dans `local/share/man/man1/<nom>.1` et met à jour les listes dans `.config/`
|
||||
4. Committer les trois fichiers + les fichiers `.config/` mis à jour
|
||||
5. Pousser avec le remote HTTPS qui embarque le token Gitea dans l'URL
|
||||
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 principales
|
||||
### Commandes
|
||||
|
||||
```bash
|
||||
bash prep.sh # Génère les pages man (Pandoc) et met à jour les listes .config/
|
||||
bash install.sh # Déploie tout dans ~/.local/{bin,share/...}
|
||||
bash uninstall.sh # Supprime les fichiers déployés via ~/.config/a5l_scripts-bash_uninstall-list
|
||||
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 (extensions .sh retirées à l'install)
|
||||
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 générées par prep.sh via Pandoc (ne pas éditer manuellement)
|
||||
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
|
||||
.config/ → listes de fichiers utilisées par install.sh (générées par prep.sh)
|
||||
ecoleA/ → scripts d'administration pour déploiements école
|
||||
servers/linux/ → scripts serveur Linux
|
||||
```
|
||||
|
||||
### Mécanisme install/uninstall
|
||||
### Makefile
|
||||
|
||||
`install.sh` lit les listes `.config/files_local-*` (produites par `prep.sh`) pour savoir quoi copier. Chaque fichier déployé est enregistré dans `~/.config/a5l_scripts-bash_uninstall-list`, ce qui permet à `uninstall.sh` de tout supprimer proprement.
|
||||
`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.
|
||||
|
||||
Les scripts `.sh` sont installés **sans extension** dans `~/.local/bin`. Les autres fichiers (PHP, man, JSON) 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`. Le frontmatter YAML (tags, nom, description) est utilisé dans Obsidian pour l'indexation via `liste-des-scripts.base`.
|
||||
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 HTTPS avec le token Gitea intégré dans l'URL (`https://user:TOKEN@git.abonnel.fr/...`). Ne pas passer en SSH sans mettre à jour tous les projets qui partagent ce token.
|
||||
Le remote `origin` utilise HTTPS avec le token Gitea intégré dans l'URL (`https://user:TOKEN@git.abonnel.fr/...`).
|
||||
|
||||
Reference in New Issue
Block a user