77 lines
3.2 KiB
Org Mode
77 lines
3.2 KiB
Org Mode
* 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).
|