dotme - The dotfile manager

DESCRIPTION

DotMe keeps configuration files (a.k.a. dotfiles) under version control (git) and installs symbolic links under your home directory. It's controlled via rake commands (see USAGE for more information).

Where possible, custom configuration files (<some-name>.mine) are supported and included by whatever mechanism is provided by the respective configuration system.

USAGE

Change to the directory you installed dotme in (see INSTALL below), e.g.:

cd ~/dotme

Install symlinks to dotfiles:

rake install

Update codebase and symlinks (default task):

rake [update]

Remove symlinks to dotfiles:

rake uninstall

See a list of all available tasks:

rake -T

INSTALL

First, you need git for dotme to function. Install it, if you haven't already, and come back here.

Change to the directory you want to install dotme in, e.g.:

cd ~

Clone branch master of dotme:

git clone git://github.com/blackwinter/dotme.git

Change to the new directory and create an include/exclude file (optional, but recommended):

cd dotme
vi inclexcl

  # i want vim and irb
  +vim
  +irb

  # and bash_aliases
  +bash/bash_aliases

  # but git only without gitignore
  +git
  -git/gitignore

Finally, install the symlinks:

rake install

ISSUES

  • git-config replaces ~/.gitconfig symlink with real file (thread). So, if you update your git configuration through git-config --global, the config file will no longer be tracked by dotme. Instead, edit it directly.

    UPDATE: Seems to no longer be valid. Not sure since which Git version, though (at least v1.7.4).

  • git-config doesn't expand variables in ~/.gitconfig file. See e.g. this thread. This means you have to update the name, email, and excludesfile settings in the configuration file. In particular, without the latter being adjusted you won't benefit from the shipped ~/.gitignore file.

    UPDATE: Since Git v1.6.5.5, it expands a few variables that name paths in configuration files when they start with ~/ or ~username/.

CALL TO ACTION

If you want to contribute modifications to existing dotfiles or add some of your own, just send me a patch or a pull request. The same goes for any bugs or issues you find.

LINKS

Documentation

blackwinter.github.com/dotme

Source code

github.com/blackwinter/dotme

AUTHORS

LICENSE AND COPYRIGHT

Copyright (C) 2008-2013 Jens Wille

dotme is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

dotme is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with dotme. If not, see <www.gnu.org/licenses/>.