A simple Bash script with Git submodules satisfies all those criteria, other than the fact that it should be a separate tool! Feel free to steal ideas from my script if you want to build your own tool: https://github.com/aclissold/dotfiles
I thought about how it should look when I do a fresh install:
sudo apt-get install vim zsh git
git clone my repo into .dotfiles
cd .dotfiles
./update.sh
and I'm right back to where I was. :). The script differentiates between Mac OS X and Linux, and running git pull followed by update.sh also syncs any changes I may have made on another machine to the current one.
- easily install dot files on a new system
- keep track of files in git
- possible to specify different configurations (OS X, Linux, etc.)
- possible to exclude sensible dot files (i.e. .ssh/id_rsa)
- easy to update files and keep them in sync
- the tool should not be mixed with individual dot files repositories so that it's easy to upgrade to a newer version
- eventually: a dot file repository where people can share / show off their configurations
There are a few tools available on Github but none which have all the above features (AFAIK).