sdf_frankenscript/README.org

77 lines
3.2 KiB
Org Mode
Raw Permalink Normal View History

2021-06-27 17:29:13 +00:00
* Il frankenscript
E' il risultato di scopiazzamenti vari messi insieme con lo scotch e la colla di pesce.
Purtroppo è passato un bel po' di tempo e non ricordo da dove ho preso il codice.
Agli autori dimenticati vanno tutti i miei ringraziamenti.
Il "tool" (se così si può chiamare) è in realtà composto da due branche: una per Linux
e l'altra per Windows.
Il funzionamento delle due branche è essenzialmente uguale e segue la stessa struttura:
- runme_* :: E' lo script di "bootstrap". Ha il compito di impostare l'ambiente e richiamare
lo script di gestione dei link simbolici.
- install.* :: E' lo script che esegue il lavoro vero e proprio di gestione dei link
simbolici e dell'unico vezzo relativo alla configurazione di Git.
Il file da eseguire è quindi "runme_linux.sh" in ambiente Linux o "runme_win.cmd" in
ambiente Windows.
Per Windows occorre avere i diritti di creazione dei link simbolici o eseguire lo script
con "esegui come administratore".
* L'organizzazione dei dotfiles
La gestione è un po' datata e prende in considerazione come destinazione soltanto la =$HOME=.
I dotfiles sono gestiti in "gruppi" ciascuno identificato da una directory, dare un nome
descrittivo alla directory è utile, ma non è necessario. Non c'è nessun legame tra il
nome della directory ed il suo contenuto.
Queste le directory ustate:
- common: elementi "comuni" o non necessrariamente abbinati ad un software.
- emacs: elementi di configurazione dei dotfiles relativi a GNU Emacs
- git: elementi di configurazione dei dotfiles relativi a Git
- vim: elementi di configurazione dei dotfiles relativi a Vim
All'interno di ciascuna directory gli elementi vengono gestiti in base alla tipolgia
(estensione) dei files.
** *.windows-registry
Deve essere gestito come elemento del registro di configurazione di Windows.
Il contenuto è stato creato con un export che viene quindi importato.
** *.symlink
Senza la "S" finale!
E' il file a cui si vuole agganciare il link simbolico. Il nome del link simbolico
sarà lo stesso del file.
Se ad esempio ho il file ~.gitconfig.symlink~, dopo l'esecuzione dello script mi
ritroverò nella =$HOME= o nella =%USERPROFILE%= ~.gitconfig~ come link simbolico.
** *.symlinks
Notare la "S" finale!
Contiene la lista delle destinazioni dei link simbolici.
Necessaria quando i nomi delle destinazioni sono diverse tra Linux
e Windows (unici elementi gestiti).
Facciamo un esempio.
Se ho un file (ma non c'è differenza se dovessi avere una directory) di nome ~.pippo.conf~
ed ho la necessità di creare un link simbolico che si chiama ~_pippo.conf~ per Windows
mentre quello per Linux resta invariato continuado a chiamarsi ~.pippo.conf~ devo agire così:
- avere il file reale che si chiame ~.pippo.conf~
- creare un file di testo che si chiama ~.pippo.conf.symlinks~ (ricordarsi della S finale)
e il cui contenuto deve essere di due righe:
- ~linux: .pippo.conf~
- ~windows: _pippo.conf~
Eseguendo lo script in Linux mi troverò nella =$HOME= ~.pippo.conf~ (link simbolico che punta
al file fisico nel repository dei dotfiles).
Eseguendo lo script in Windows mi ritroverò nella =%USERPROFILE%= ~_pippo.conf~ (sempre
link simbolico).