[ about | pics | projects | repos | weblog ]

[ ~derf :: projects :: caretaker ]

caretaker (ct) is a zsh script inspired by vcs-home. It can be used to share dotfiles, little scripts, and (if one wants to) even projects across various hosts, while keeping them in sync.

It is based on git version control. The user edits files and commits the changes, caretaker pushes/pulls the repos so they are kept in sync.

caretaker itself operates on "packages", which are simple git repositories with some sort of directory structure. Each git repository is one package, and caretaker itself is one, too. There's no limit to the number of packages a user can have.

Thanks to the directory structure, it is possible to run "ct add zsh", which automatically creates ~/.zshrc etc. and makes sure they always point to the right zshrc version.

For a more exhaustive explanation of caretaker and its package structures, see caretaker(7). The script itself is documented in ct(1), the setup in caretaker-setup(7).

Some other features are:

  • Very basic dependency support
  • Documentation (either POD in perl scripts or POD/man/mdoc) is found and collected in a special directory, which can be added to $MANPATH
  • "provieds" system, e.g. to split a zsh config between various (partially optional) packages
  • package hooks (post-add, pre/post-update, pre-remove)
  • automatic (or manually configured) symlinking of config files