Yet another management tool for dotfiles
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
ci
scripts
src
templates
tests/dotfiles
.gitignore
.travis.yml
Cargo.toml
LICENSE
README.md
appveyor.yml
rustfmt.toml

README.md

dot

Build Status Build status

dot is a command-line tool for management dotfiles, written in Rust.

Overview

dot provides a way to organize your configuration files located at home directory.

Installation

Precompiled binaries are located at GitHub releases page. If you want to use development version, try cargo install to build from source, as follows:

$ cargo install --git https://github.com/ubnt-intrepid/dot.git

Example Usage

  • Clones your dotfiles repository from remote and then creates links into your home directory:

    $ dot init ubnt-intrepid/dotfiles
  • Check if all of links are correctly existed:

    $ dot check

<pattern> is set the string to determine remote repository's URL of dotfiles. Available patterns are as follows:

  • (http|https|ssh|git)://[username@]github.com[:port]/path-to-repo.git
    URL of dotfiles repository
  • git@github.com:path-to-repo.git
    SCP-like path
  • username/dotfiles
    GitHub user and the name of repository
  • username Only GitHub user (the name of repository is assumed to be dotfiles)

By default, the location of dotfiles repository is $HOME/.dotfiles. The location can be specified by using environment variable $DOT_DIR.

If you want more information, type dot help.

Configuration

You must specify all of the mappings from files in dotfiles to the desired path, in $DOT_DIR/.mappings. An example of .mappings is as follows:

# $DOT_DIR/.mappings

[general]
gitconfig   = "~/.gitconfig"
"vim/vimrc" = "~/.vimrc"
#...

[windows]
vscode = "$APPDATA/Code/User"
powershell = "$HOME/Documents/WindowsPowerShell"
#...

[linux]
xinitrc = "~/.xinitrc"

Mappings at the section [general] are avaialble at any environment. On the other hand, items at the other section ([windows], [linux]) only apply specified platform. The value of environment variables in each items are extracted.

See also my dotfiles for details.

License

dot is distributed under the MIT license. See LICENSE for details.

Similar Projects