homesick

A man's home (directory) is his castle, so don't leave home with out it.

Homesick is sorta like rip, but for dotfiles. It uses git to clone a repository containing dotfiles, and saves them in ~/.homesick. It then allows you to symlink all the dotfiles into place with a single command.

We call a repository that is compatible with homesick to be a 'castle'. To act as a castle, a repository must be organized like so:

  • Contains a 'home' directory
  • 'home' contains any number of files and directories that begin with '.'

To get started, install homesick first:

gem install yahomesick

Next, you use the homesick command to clone a castle:

homesick clone git://github.com/muratayusuke/dotfiles.git

Alternatively, if it's on github, there's a slightly shorter way:

homesick clone muratayusuke/dotfiles

With the castle cloned, you can now link its contents into your home dir:

homesick symlink dotfiles

If you use the shorthand syntax for GitHub repositories in your clone, please note you will instead need to run:

homesick symlink muratayusuke/dotfiles

If you're not sure what castles you have around, you can easily list them:

homesick list

To pull your castle (or all castles):

homesick pull --all|CASTLE

To commit your castle's changes:

homesick commit CASTLE

To push your castle:

homesick push CASTLE

Not sure what else homesick has up its sleeve? There's always the built in help:

homesick help

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.

Need homesick without the ruby dependency?

Check out yahomeshick.

Homesick

YAHomesick is a fork from technicalpickles/homesick.

Copyright (c) Yusuke Murata. See LICENSE for details.