https://github.com/erizocosmico/dotman
Super simple dotfiles manager
https://github.com/erizocosmico/dotman
dotfiles manager symlink
Last synced: 12 days ago
JSON representation
Super simple dotfiles manager
- Host: GitHub
- URL: https://github.com/erizocosmico/dotman
- Owner: erizocosmico
- License: mit
- Created: 2019-12-07T22:02:52.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2019-12-07T22:16:22.000Z (over 5 years ago)
- Last Synced: 2025-02-08T03:33:51.304Z (2 months ago)
- Topics: dotfiles, manager, symlink
- Language: Go
- Size: 3.91 KB
- Stars: 3
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - erizocosmico/dotman - Super simple dotfiles manager (Go)
README
# dotman
Super simple dotfiles manager. It will create symlinks between your dotfiles repository and the system files.
## Install
Via go get:
```
go get github.com/erizocosmico/dotman
```Manual build:
```
cd /path/to/dotman
go build -o /usr/local/bin/dotman .
```Or just grab one of the releases from the [releases page](https://github.com/erizocosmico/dotman/releases).
## Usage
### Config
Create a `config.yaml` file with the mappings between files:
```yaml
config/i3: ~/.config/i3
config.json: ~/.config/some/config.json
````dotman` admits only a very limited form of yaml: `SRC_PATH: DST_PATH`.
The key is the source file or directory, and the value is the destination.For example, `config/i3: ~/.config/i3` will create a symlink between `./config/i3` and `~/.config/i3`, no matter if it's a file or a directory.
### Run
```
dotman
```
Just that.There's a couple options you can specify:
- `-force` if the destination path already exists, delete it first and then symlink. This is specially dangerous if the destination is a folder! Use with caution!
- `-config PATH` path to the config file. `config.yaml` by default.By default, if the destination exists, dotman will ask you if you want to replace it, so if you didn't use `-force` dotman will not mess anything unless you specifically confirm whether you want to overwrite some file or not.
## License
MIT License, see [LICENSE](/LICENSE)