Les mêmes fichiers de configuration sur toutes les machines (Fedora, Debian), mis à jour automatiquement chaque jour depuis ce dépôt.
Il faut git et curl :
bash <(curl -fsSL https://raw.githubusercontent.com/mgraff/dotfiles/master/install.sh) install https://github.com/mgraff/dotfiles.git
Les fichiers déjà présents à la place des nouveaux sont déplacés dans
~/.local/share/dotfiles/backup/<date>/.
install.sh installe et met à jour (devient la commande « dotfiles »)
bash/home/… ~/.bashrc, ~/.inputrc, ~/.bashrc.d/…
bash/hook.sh complétions kubectl/npm/pip/toolbox, outils manquants
nvim/home/… ~/.config/nvim/init.lua (léger, sans plugin)
nvim/requires installé seulement si nvim est présent
tmux/home/… ~/.tmux.conf
tmux/requires installé seulement si tmux est présent
tmux/hook.sh recharge la configuration du serveur tmux en cours
- Un dossier par paquet : tout ce qui est dans
<paquet>/home/est placé dans~avec la même arborescence. <paquet>/hook.sh(facultatif) est lancé après chaque installation ou mise à jour.<paquet>/requires(facultatif) liste les commandes dont le paquet a besoin, une par ligne. S'il en manque une, le paquet est ignoré : ses fichiers ne sont pas installés (ou sont retirés s'ils l'étaient) et son hook n'est pas lancé. Dès que l'outil est installé, la mise à jour suivante installe le paquet.- Pour ajouter un paquet, par exemple git : créer
git/home/.gitconfig.
- Le dépôt est cloné dans
~/.local/share/dotfiles/repo.git. Chaque commit installé est extrait dans~/.local/share/dotfiles/releases/<date>-<commit>/, et~/.local/share/dotfiles/currentpointe vers la version active. - Les fichiers de
~sont des liens verscurrent: une mise à jour change tous les fichiers d'un coup. - Avant d'installer un commit, la syntaxe de tous les fichiers bash est vérifiée : un commit contenant une erreur est refusé, rien n'est modifié.
- Un fichier retiré du dépôt est retiré de
~à la mise à jour suivante. - Les 5 dernières versions sont conservées pour
dotfiles rollback. - Un timer systemd utilisateur lance
dotfiles update2 minutes après l'ouverture de session, puis une fois par jour.
dotfiles update récupérer et appliquer le dernier commit
dotfiles status dépôt, version installée, prochaine mise à jour
dotfiles rollback revenir à la version précédente
Une mise à jour s'applique aux nouveaux shells ; dans un shell ouvert :
exec bash.
Modifier dans ce dépôt (~/repositories/dotfiles), commiter et pousser, puis
dotfiles update pour appliquer tout de suite. Ne pas modifier les fichiers de
~ : ce sont des liens vers une version extraite, remplacée à la mise à jour
suivante.
- nvim :
:Wenregistre avec sudo un fichier ouvert sans les droits d'écriture. Pour ouvrir un fichier système, préférersudoedit fichieràsudo nvim fichier: la configuration est la même et nvim ne tourne pas en root. - Debian : installer
git fzf less bash-completion; le hook bash signale ce qui manque. nvim et tmux sont facultatifs : sans nvim, l'éditeur est vim, sinon vi. - Nerd Font : à installer sur le poste depuis lequel on se connecte, pas sur les serveurs.
- Dépôt public : ne jamais y mettre de secret.