Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/blurgyy/dt
🏘 $HOME, $HOME everywhere
https://github.com/blurgyy/dt
aur cli command-line config configuration dotfile-manager dotfiles dt-cli handlebars rust syncing template templating
Last synced: 3 months ago
JSON representation
🏘 $HOME, $HOME everywhere
- Host: GitHub
- URL: https://github.com/blurgyy/dt
- Owner: blurgyy
- License: other
- Created: 2021-10-02T11:40:26.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-01-01T09:09:03.000Z (about 1 year ago)
- Last Synced: 2024-10-01T00:20:53.198Z (4 months ago)
- Topics: aur, cli, command-line, config, configuration, dotfile-manager, dotfiles, dt-cli, handlebars, rust, syncing, template, templating
- Language: Rust
- Homepage: https://dt.cli.rs
- Size: 2.82 MB
- Stars: 29
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE-APACHE
- Code of conduct: CODE_OF_CONDUCT.md
- Roadmap: roadmap.md
Awesome Lists containing this project
README
# DT
[![release](https://github.com/blurgyy/dt/actions/workflows/release.yml/badge.svg)](https://github.com/blurgyy/dt/actions/workflows/release.yml)
[![tests](https://github.com/blurgyy/dt/actions/workflows/tests.yml/badge.svg)](https://github.com/blurgyy/dt/actions/workflows/tests.yml)
[![docs](https://github.com/blurgyy/dt/actions/workflows/docs.yml/badge.svg)](https://dt.cli.rs/)
[![crates.io](https://img.shields.io/crates/v/dt-cli?style=flat&labelColor=1C2C2E&color=C96329&logo=Rust&logoColor=white)](https://crates.io/crates/dt-cli)`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](https://dt.cli.rs/).### Example
A simple working configuration file to sync all files from `~/dt/nvim` to
`~/.config/nvim` that matches `*init.vim` can be written as:```toml
[[local]]
name = "Neovim Configs"
base = "~/dt/nvim"
sources = ["*init.vim"]
target = "~/.config/nvim"
```:warning: **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
```shell
$ 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:```shell
$ 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` `` | Specifies path to config file. || Args | Description |
|---:|:---|
| `...` | Specifies name(s) of the group(s) to be processed |## Install
### AUR
`dt-cli` is in the [AUR](https://aur.archlinux.org/packages/dt-cli/), you can
install it with your favorite package manager:```shell
$ paru -S dt-cli
```### Alternative ways
Alternatively, you can:
- Download latest [release](https://github.com/blurgyy/dt/releases/latest)
from GitHub
- Install from [crates.io](https://crates.io/crates/dt-cli/):```shell
$ cargo install dt-cli
```- Build from source:
```shell
$ git clone [email protected]: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](https://github.com/blurgyy/dt/blob/main/CONTRIBUTING.md)!## License
Licensed under the the MIT license or
Apache License, Version 2.0 , at
your option. This file may not be copied, modified, or distributed except
according to those terms.