* 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).