Sort of OT: Does anyone know any good examples (on github or otherwise) of a dotfiles repo that can easily be installed on a machine? I've been wanting to do this for a while, but I'm sort of a noob on symlinking and such
I've designed my dotfile repo to be easily installable on any machine I happen to be on with the help of a script that backs up any existing dotfiles that may conflict with those in my repo. This allows me to backup any existing configs, link my own temporarily, then restore the old ones and 'rm -rf <my-repo>' so it's as if I never even touched the original configuration.
If you want to try it out just run the following commands:
git clone git://github.com/acx0/etc.git ~/etc
cd ~/etc
git submodule update --init # my link script is in a separate repository so it's a submodule in my dotfile repo
cd link.sh
./link.sh # this will show the status of any conflicting files
./link.sh -b # backup any conflicting files
./link.sh -wf # force write (symlink) my set of config files
And everything's set up. If you want to install the vim plugins I use, just run
vim -c 'BundleInstall'
and let Vundle download the plugins (you have to restart vim to use the plugins).
Then when you're ready to restore your ~/ back to its original state, run
./link.sh -r # restore any configs that were backed up
which also takes care of deleting the configs you didn't have (so if you backed up with no conflicting files (backup dir empty), and then restore, it'll just remove all the existing symlinks)
If you didn't run the backup command, you can simply run
./link.sh -d
to delete the symlinks for all the files in the repo. Then just remove any traces of the repo with 'rm -rf ~/etc'.
If you want to try it out just run the following commands:
And everything's set up. If you want to install the vim plugins I use, just run and let Vundle download the plugins (you have to restart vim to use the plugins).Then when you're ready to restore your ~/ back to its original state, run
which also takes care of deleting the configs you didn't have (so if you backed up with no conflicting files (backup dir empty), and then restore, it'll just remove all the existing symlinks)If you didn't run the backup command, you can simply run
to delete the symlinks for all the files in the repo. Then just remove any traces of the repo with 'rm -rf ~/etc'.