dotfiles, un fichier pour les installer tous !
Compétences : Scripts shell
Commits : 107
- Dernière activité :
1720714722
Source (Github)
Il est toujours laborieux de reconfigurer terminal et logiciels lorsque que l'on réinstalle son ordinateur. Après le formatage de trop sur mon Mac, j'ai décidé de stocker l'ensemble de mes fichiers de configuration dans un répertoire sur Github, et très rapidement m'est venu l'envie d'automatiser leur installation et ce peu importe l'OS cible (MacOS/Linux).
Celle-ci repose sur une simple commande cURL vers un script présent dans le répertoire Github de mes dotfiles. Ce dernier va alors procéder à différentes manipulations :
- Le répertoire va être cloné dans le dossier personnel de l’utilisateur ;
-
Un lien symbolique sera créé pour tous les fichiers ayant l’extension
.symlink
vers la racine de l’utilisateur ; - Si le script est exécuté sur un système MacOS, alors Homebrew sera installé, avec l’ensemble des packages précisés dans un fichier dédié ;
-
Une fois encore, si l’utilisateur est sur Mac, des réglages spécifiques vont être appliqués sur le système
par l’intermédiaire des
defaults
. Cela concerne des options sur le Finder, l’économie d’énergie ou encore le verrouillage de session ; - Enfin, le shell est redémarré pour charger l’environnement définitif, disposant de ses propres alias, plugin, fonctions etc.
Par simplicité et pour la maintenabilité, les fichiers sont ordonnés dans des dossiers par « thématique », mais
ces derniers ne sont pas pris en compte lors du chargement de l’environnement. Ainsi, on peut créer un dossier
dédié à NodeJS avec à l’intérieur alias, $PATH
et autres configurations, et décider de le
supprimer le lendemain sans avoir à chercher dans le reste du répertoire d’éventuelles traces.
Souhaitant aller plus loin, je travaille actuellement sur une refonte complète du script, afin d'ajouter différentes fonctionnalités pouvant être utiles à tous·tes, comme la création de back-up pour les fichiers déjà existants, une désinstallation plus aisée, ou encore la création d'un exécutable pour administrer les dotfiles. En attendant, le projet peut déjà être forké pour l'adapter à vos besoins !