Herramienta que gestiona dotfiles usando Git pero sin tener que moverlos del $HOME.
$ yadm init
Una vez inicializado, añadir dotfiles:
$ yadm add ~/.bashrc
$ yadm add ~/.emacs.d/init.el
$ yadm add ~/.config/kitty/kitty.conf
Y realizar el commit:
$ yadm commit -m "dotfiles iniciales"
Y usarlo como Git
$ yadm status
$ yadm log
Opcionalmente puede subirse a GitHub
$ yadm remote add origin git@github.com:usuario/dotfiles.git
$ yadm push -u origin master
$ yadm clone git@github.com:usuario/dotfiles.git
$ yadm diff
$ yadm perms
Otras opciones del comando:
$ yadm list -a
$ yadm enter
$ yadm config --list | grep yadm
Nota.- Si algo no debe ir al repo colocarla en .config/yadm/ignore funciona como .gitignore.
$ nano .config/yadm/ignore
.config/yadm/age.key
1.-
Cifrar archivos sensibles
$ nano .config/yadm/encrypt
Agregar los archivos que se crea oportuno:
~/.ssh/id_rsa
~/.ssh/id_ed25519
~/.config/api_keys
$ yadm encrypt
$ yadm rev-parse --git-dir
2.-
Cifrado moderno con age muy recomendable y que está reemplazando a GPG
$ age-keygen -o ~/.config/yadm/age.key
$ yadm config yadm.encrypt age
$ yadm config yadm.age-recipient age1ayv9twr054t4ugv8rqrfe9d3syxytwhe77k5kln644glf33hnyaqkg7srg
A partir de ahora yadm encrypt usará age automáticamente.
$ yadm config --get yadm.encrypt
$ yadm config --get yadm.age-recipient
3.-
Ejecutar scripts automáticamente cuando pasa algo.
$ nano ~/.config/yadm/hooks/post_pull
#!/bin/sh
echo "Dotfiles actualizados"
Cada vez que se haga un
$ yadm pull
Se ejecutará el script post_pull.