# alpinux.scripts Les scripts qu'Alpinux fait tourner sur des machines qui ne sont pas les siennes. Ils sont publics parce qu'ils doivent pouvoir se télécharger sans compte, depuis une session live, par quelqu'un qui découvre Linux le matin même — et parce que du code qui s'exécute en root chez autrui doit pouvoir être lu par celui qui le lance. La documentation, elle, vit dans le wiki : [guide Linux Mint depuis Windows](https://wiki.alpinux.org/guides/linux-mint-depuis-windows/). ## Ce que contient chaque dossier Le classement suit **qui lance le script, sur quelle machine, avec quels droits** — c'est ce qui commande la prudence à lui appliquer. Il ne suit ni les distributions, ni les dates : un script ne change pas de nature quand Mint change de version. | Dossier | Ce qui y entre | |---|---| | `poste/` | Ce qui tourne sur la machine d'un participant, le plus souvent en root. Rien n'y entre sans avoir été essayé sur une vraie machine. | D'autres dossiers viendront — la part publiable des scripts du serveur, des outils de bénévole sans privilège. Chacun avec sa règle, écrite ici. ## `poste/` — trois scripts, dans cet ordre | Script | Quand | Ce qu'il fait | |---|---|---| | `verif-disque.sh` | depuis la session live, **avant** de toucher au disque | lit et affiche : partitions, Windows, BitLocker, réseau. Ne modifie rien. | | `alpi-fiche.sh` | avant (`--check`) et après l'installation | relève la fiche matérielle, juge l'état des disques, l'envoie au serveur de l'install party s'il est joignable. | | `install.sh` | après l'installation de Mint | post-installation : paquets, Firefox en français, GRUB. Appelle `alpi-fiche.sh` s'il le trouve. | **Les trois vont ensemble, dans le même dossier.** `install.sh` cherche le relevé à côté de lui — `$(dirname "$0")/alpi-fiche.sh` — et ne le télécharge jamais : aucun code n'est tiré du réseau pendant une installation. Un `install.sh` téléchargé seul fonctionne, mais ne relève rien, et sans le dire. Sur le réseau d'une install party, le serveur les sert tous les trois : ```bash wget http://10.0.0.1/install.sh http://10.0.0.1/alpi-fiche.sh chmod +x install.sh alpi-fiche.sh sudo ./install.sh ``` Ailleurs, l'en-tête de chaque script donne son adresse de téléchargement. ## `main` et `stable` `main` est la branche de travail. **`stable` est celle que les machines reçoivent** : c'est elle que le serveur de l'install party recopie et redistribue, sans que personne ne la relise au passage. On avance donc `stable` sur `main` quand le changement a été essayé sur une machine — pas quand il a été écrit. Sans cette règle, un commit de vingt-deux heures part en root sur le poste d'un inconnu avant minuit. ```bash git switch stable && git merge --ff-only main && git push ``` ## Ce qui a déjà mordu Un fichier corrigé sur le serveur sans être poussé ici est un fichier perdu : le serveur se resynchronise toutes les heures et rétablit cette version-ci. C'est arrivé le 24 septembre 2026, et les correctifs ne se sont retrouvés que parce qu'ils vivaient aussi dans le dépôt du serveur. On corrige ici, on déploie ensuite.