Rethink Dotfile format

Conceptually instead of it just creating symlinks, it instead performs
"actions", and new actions can be supported via dotify plugins. In fact,
all built-in actions will be implemented as plugins.
This commit is contained in:
2013-06-26 21:21:58 +02:00
parent af5116d595
commit dae863630e

View File

@@ -3,30 +3,50 @@
# name of the root symlink can be customized. # name of the root symlink can be customized.
root_link .dotfiles root_link .dotfiles
# Symlink commands are of the form "<source>: <target>". Source is relative to # Each line defines an action, if not action name is given, the default is
# the directory of the Dotfile, and target is relative to the path of your # assumed.
# home folder. All symlinks are symlinked via the root link mentioned above. default_action link
arkrc: .arkrc
bundle: .bundle # Actions are formatted as "<action>: <data>". The link action is the most
emacs.d: .emacs.d # commonly used one, and it's data format is "<source> -> <target>". Source
erland: .erlang # being relative to the directory the Dotfile is located in, and target
gemrc: .gemrc # relative to your home folder. The link action creates symlinks via the root
gitconfig: .gitconfig # link.
gitignore: .gitignore link: arkrc -> .arkrc
hgrc: .hgrc
irbrc: .irbrc # With no action specified, the default action is assumed, in this case that
powconfig: .powconfig # would be the link action.
rspec: .rspec bundle -> .bundle
tmux: .tmux emacs.d -> .emacs.d
tmux.conf: .tmux.conf erland -> .erlang
gemrc -> .gemrc
gitconfig -> .gitconfig
gitignore -> .gitignore
hgrc -> .hgrc
irbrc -> .irbrc
powconfig -> .powconfig
rspec -> .rspec
tmux -> .tmux
tmux.conf -> .tmux.conf
# The same source can be symlinked to multiple targets. # The same source can be symlinked to multiple targets.
load_shellrc.sh: .profile load_shellrc.sh -> .profile
load_shellrc.sh: .zshrc load_shellrc.sh -> .zshrc
# Wild-cards can be used in source, but target has to then be a directory # Wild-cards can be used in source, but target has to then be a directory
# instead of a file name. # instead of a file name.
launch_agents/*.plist: Library/LaunchAgents/ launch_agents/*.plist -> Library/LaunchAgents/
# Include additional Dotfiles. # The git action clones git repositories to a path relative from your home
# folder. If you want external git repos to be cloned into your dotfiles, use
# git submodules instead.
git: https://github.com/sstephenson/rbenv.git -> .rbenv
# Wrap long lines by ending a line with a backslash.
git: https://github.com/sstephenson/ruby-build.git -> \
.rbenv/plugins/ruby-build
# Include and parse additional Dotfiles. Useful if your main dotfiles repo is
# public, and you have a private set of dotfiles for SSH keys and the like
# that you pull into your public repo via a git submodule.
include private/Dotfile include private/Dotfile