3.6 KiB
3.6 KiB
AGENTS.md
But du depot
Ce projet construit un framework de post-installation pour Debian 13, lance via :
curl -fsSL https://gitea.maison43.duckdns.org/gilles/postinstall-debian/raw/branch/main/install.sh | bash
L'objectif est de proposer une base modulaire, testable et evolutive pour installer et configurer un systeme Debian apres installation.
Regles de travail
- ecrire les commentaires et les explication en francais
- Toujours privilegier une architecture modulaire.
- Chaque outil doit vivre dans son propre module.
- Ne pas melanger logique framework, logique UI et logique d'installation d'un outil.
- Eviter les actions destructives ou silencieuses sur le systeme.
- Garder le code compatible avec Debian 13 et un shell Bash standard.
- Favoriser du code lisible, structure et compose de fonctions courtes.
Structure cible
Le depot doit converger vers cette structure :
install.sh
README.md
consigne.md
tools.md
CHANGELOG.md
AGENTS.md
assets/
config/
core/
docs/
hardware/
lib/
menus/
modules/
profiles/
tests/
Responsabilites par zone
install.sh: point d'entree compatiblecurl | bash.core/: bootstrap, runtime, registre des modules, dispatch.lib/: fonctions reutilisables UI, logs, validations, paquets, systeme, reseau.menus/: menus interactifs.modules/: outils installables, un dossier par outil.profiles/: groupes de modules predefinis.hardware/: selections liees au materiel.assets/: themes, polices, wallpapers, icones et ressources visuelles.tests/: tests framework et tests de modules.docs/: documentation de conception et d'usage.
Contrat d'un module
Chaque module doit idealement contenir :
modules/<categorie>/<outil>/
module.sh
config.sh
metadata.conf
tests.sh
Fonctions attendues quand elles sont pertinentes :
module_<outil>_metadatamodule_<outil>_checkmodule_<outil>_installmodule_<outil>_configuremodule_<outil>_test
Standards Bash
- Utiliser
set -uet une gestion d'erreurs explicite lorsque l'architecture sera en place. - Citer correctement les variables.
- Preferer
command -vpour verifier les dependances. - Centraliser les logs, messages UI et validations dans
lib/. - Garder les effets de bord dans des fonctions nommees clairement.
- Prevoir ShellCheck des que les scripts existent.
Experience utilisateur
Le framework doit fournir :
- une interface console claire
- des messages colores et coherents
- des etapes visibles
- des confirmations quand une action est sensible
- un resume final des operations
Fonctions UI a prevoir :
ui_headerui_sectionui_infoui_successui_warnui_errorui_menuui_confirmui_pause
Securite
- Verifier la distribution et les privileges avant toute installation.
- Verifier le reseau si une action distante est necessaire.
- Ne pas modifier silencieusement des fichiers critiques.
- Preferer des changements explicites, journalises et reversibles quand possible.
Methode pour ajouter un outil
Avant implementation, passer par :
- Brainstorming de l'outil.
- Decision d'architecture.
- Implementation du module.
- Integration menu, profil ou materiel si necessaire.
- Tests.
- Documentation.
Les informations minimales d'un outil dans tools.md sont :
- nom
- description
- categorie
- questions
- methode d'installation
- tests
- statut
Priorite immediate
Avant d'ajouter des outils, construire l'ossature du framework :
- point d'entree
install.sh - dossiers standards
- bibliotheques de base
- mecanisme de chargement
- premiers menus
- documentation de demarrage