3.7 KiB
- yadm
- Installazione
- Partendo da zero
- Partendo con un nuova installazione, ma con repository remoto già pronto
- Funzionalità particolari
- Bootstrap
- Alternate files
- Templates
- Encryption
- Hooks
yadm
Scritto in Python. Non funziona su Windows, ma non ha dipendenze aggiuntive su Linux.
Consente la gestione dei dotfiles in un repository con l'aggiunta dei template e anche dei dati crittografati (come anche chezmoi).
Installazione
E' possibile installare il programma in vari modi (elencati nella documentazione). Un modo che consente l'installazione senza necessità di particolari diritti e' quello di scaricare il programma direttamente dal repository github:
mkdir ~/.local/bin curl -fLo ~/.local/bin/yadm \ https://github.com/TheLocehiliosan/yadm/raw/master/yadm \ && chmod a+x ~/.local/bin/yadm
Yadm funziona come un wrapper attorno a Git con l'aggiunta di alcune particolarità specifiche per la gestione dei dotfiles.
Partendo da zero
Partendo da zero la procedura prevede
- La creazione del repository dove yadm gestirà i dotfiles
- La sua configurazione (ricordarsi di impostare user.name e user.email)
- La configurazione del link al repository remoto
- L'aggiunta dei dotfiles al repository
- Il commit
- Il push
# Inizializzo il repository # (ricordarsi di aggiungere poi a mano user.name e user.email) # il repository viene creato in ~/.local/share/yadm/repo.git yadm init # Aggiungere il server remoto # yadm remote add origin <url/to/remote/repo> # Aggiungo vim yadm add .vimrc yadm add .vim yadm commit -m "Aggiunto vim" yadm push -u origin master
Si possono aggiungere files o directory come se si stesse lavorando con Git
Partendo con un nuova installazione, ma con repository remoto già pronto
Partendo da una home "vuota" ed avendo a disposizione un repository già configurato si procede con l'installazione del programma
mkdir ~/.local/bin curl -fLo ~/.local/bin/yadm \ https://github.com/TheLocehiliosan/yadm/raw/master/yadm \ && chmod a+x ~/.local/bin/yadm
A questo punto si clona il repository
# yadm clone <url/to/remote/repo> yadm status
Il comando clone
cerca di fare il checkout di tutti i files presenti nel reposiotry.
Se un file esiste già localmente e il suo contenuto differisce da quello nel repository
il file locale sarà lasciato invariato e occorrerà verificare e risolvere le differenze.
Funzionalità particolari
Yadm offre alcune funzionalità particolari
Bootstrap
E' possibile posizionare uno script di nome bootstrap
(deve chiamarsi così) in
$HOME/.config/yadm
.
Questo file, che deve essere posizionato manualmente e deve essere eseguibile, sarà richiamato ed eseguito con il comando
yadm bootstrap
Alternate files
E' possibile usare files diversi per situazioni diverse. La gestione avviene appendendo un suffisso al nome del file da aggiungere al repository (vedi documentazione).
Templates
Il concetto è simile agli alternate files. I template contengono dati specifici per un host che saranno gestiti in input da un template processor per produrre in output il file elaborato.
Encryption
Se vi fidate, consente la memorizzazione nel repository di informazioni crittografate. L'esempio tipico è quello relativo alla gestione delle chiavi SSH.
Hooks
Per ogni comando di yadm è possibile fornire degli script da eseguire prima e/o dopo l'esecuzione del comando stesso.
Gli hook sono gestiti con attenzione al risultato dell'esecuzione dello script. Se, ad esempio, uno script di "pre_commit" viene eseguito ritornando un valore diverso da zero, allora il comando commit non viene eseguito e il processo si ferma.