wagon 0.4.0

A command line utility to manage configuration files in one place
# Wagon

Utility to make dotfiles portable with symbolic links

[![build][badge]](https://github.com/yasuyuky/wagon/actions)

[badge]: https://github.com/yasuyuky/wagon/workflows/build/badge.svg

# Installation

`cargo install wagon`

# Usage

Create the dotfiles in your git-controlled directory.

Place dotfiles in a subdirectory such as the following.

```tree
dotfiles
├── .bashrc
├── .config
│   ├── direnv
│   │   ├── .gitignore
│   │   └── direnvrc
│   ├── flake8
│   ├── git
│   │   └── ignore
│   ├── peco
│   │   └── config.json
│   ├── starship.toml
│   └── yapf
│       └── style
├── .gitconfig
├── .ssh
│   └── config
├── .tmux.conf
├── .vim
├── .vimrc
├── .vscode
│   └── settings.json
├── .zsh
└── .zshrc
```

Then execute the following command, and symbolic links to your files will be created in your home.

```console
wagon link .
```

You can also use the `copy` subcommand to copy files.

```console
wagon copy .
```

## `wagon repo` Command

```console
wagon repo OWNER/REPO # for example yasuyuky/wagon
```

This command will checkout the GitHub Repository to `~/src/github.com/OWNER/REPO`

# Configuration

The `.wagon.toml` file controls the behavior of the command.

## `dest` field

By default, the command links the configuration file under your home. If you want to change this behavior, set the `dest` field.

```toml
"dest" = "/"
```

## `init` field

The `init` field can be used to initialize the application to use each configuration file.

```toml
[[init]]
command = "brew"
args = ["install", "direnv"]
os = "macos"
```

For example, you can use the following command to run the initial configuration.

```
wagon init direnv
```