polk 0.1.0

Dotfile manager and symlinker
polk-0.1.0 is not a library.

polk

Dotfile manager.

Installation

With Cargo

cargo install polk

Examples

# Grab and symlink dotfiles from my GitHub account.
# (assumes repository named 'dotfiles')
polk setup github:dylanmckay

# Grab and symlink dotfiles from another repository.
polk setup github:dylanmckay/otherdotfiles

# Download dotfiles to a local cache folder but don't create symlinks
polk grab github:dylanmckay

# Create symlinks to the currently grabbed dotfiles
polk link

# Update the dotfiles (via git)
polk update

# Remove all symlinks created by polk.
polk unlink

# Remove all symlinks and cached dotfiles/repositories (~/.polk)
polk forget

# Print a bunch of information
polk info

Your dotfiles repository

A repository would generally look something like this

.
..
.bashrc
.rspec
.tmux.conf
.tmux.linux.conf
.vim
.config/awesome/config.lua
README.md

How symlinking works works

Here is a table of how dotfiles within a repository map to symlinks in $HOME.

|| File || Symlink || | .bashrc | ~/.bashrc -> ~/<dotfiles repository path>/.bashrc | | .tmux.conf | ~/.tmux.conf -> ~/<dotfiles repository path>/.tmux.conf | | .config/awesome/config.lua | ~/.config/awesome/config.lua -> ~/<dotfiles repository path>/.config/awesome/config.lua |

Handling of config files in subdirectories

As you can see in the above table, if a dotfile resides in a subdirectory(s), those directories will get created in $HOME and then a symlink to the dotfile will be created within the subdirectories.

It is not possible with this tool to symlink an entire directory within a dotfiles repository to $HOME. If this were possible, applications would/could write new files into the repository, which isn't good.