/dt

🏘 $HOME, $HOME everywhere

Primary LanguageRustOtherNOASSERTION

DT

release tests docs crates.io

DT allows you to sync/populate configuration files at will. It currently provides a CLI tool dt-cli.

Usage

The command line interface dt-cli accepts a path to the configuration file as an argument and performs the syncing process specified in the file.

Configuration guides and detailed usages can be found in the documentations.

Example

A simple working configuration file to sync all files from ~/dt/nvim to ~/.config/nvim that matches *init.vim can be written as:

[[local]]
name = "Neovim Configs"
base = "~/dt/nvim"
sources = ["*init.vim"]
target = "~/.config/nvim"

⚠️ STOP HERE if you don't know what you are doing, or have not backed up existing files under ~/.config/nvim.

Save above config to ~/.config/dt/cli.toml and run

$ dt-cli -c ~/.config/dt/cli.toml

to start syncing. Note the path in this example (~/.config/dt/cli.toml) is also the default path, so the below command (calling dt-cli with no argument) does the same thing as above:

$ dt-cli

Other command line flags & options

Flags Description
-d|--dry-run Shows changes to be made without actually syncing files.
-h|--help Prints help information.
-q|--quiet Decreases logging verbosity.
-v|--verbose Increases logging verbosity.
-V|--version Prints version information.
Options Description
-c|--config-path <path> Specifies path to config file.
Args Description
<group-name>... Specifies name(s) of the group(s) to be processed

Install

AUR

dt-cli is in the AUR, you can install it with your favorite package manager:

$ paru -S dt-cli

Alternative ways

Alternatively, you can:

  • Download latest release from GitHub

  • Install from crates.io:

    $ cargo install dt-cli
  • Build from source:

    $ git clone git@github.com:blurgyy/dt.git
    $ cd dt
    $ cargo test --release
    $ cargo install --path=dt-cli

Contributing

There are numerous ways to help with this project. Let's get started!

License

Licensed under the the MIT license http://opensource.org/licenses/MIT or Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0, at your option. This file may not be copied, modified, or distributed except according to those terms.