Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ysdexlic/dot

Dotfile manager written in rust
https://github.com/ysdexlic/dot

cli command-line-tool dotfile-manager dotfiles easy-to-use rust rust-lang

Last synced: 17 days ago
JSON representation

Dotfile manager written in rust

Awesome Lists containing this project

README

        

# Dot

[![GitHub Workflow Status (branch)](https://img.shields.io/github/actions/workflow/status/ysdexlic/dot/build.yaml?branch=main)](https://github.com/ysdexlic/dot/actions)
[![crate](https://img.shields.io/crates/v/dotm.svg?color=brightgreen)](https://crates.io/crates/dotm)
![license](https://img.shields.io/crates/l/dotm)

## Installation

Install via Cargo:
```bash
cargo install dotm
```

Install via Homebrew:
```bash
brew install ysdexlic/formulae/dot
```

## TODO

- [ ] **Write tests**
- [ ] Error handling
- [x] Add error when config file isn't set
- [ ] Fix repeated use of printing the "No .dotrc found" error
- [ ] Find out best error handling practices
- [ ] Return pretty errors
- [x] Add github actions to build binary
- [x] Add binary to releases
- [x] Release on homebrew
- [x] Automate homebrew update PRs (`mislav/bump-homebrew-formula-action`)

- [x] Don't copy pesky system files like `.DS_Store` (done by only symlinking
non dotted files)
- [x] Seems to still be happening for nested dotfiles - i.e.
`something/something/.DS_Store`
- [x] Copy folders/files recursively
- [x] Don't make a symlink for the file, instead make the directories and only
symlink the file

- [x] Add bootstrapping feature (run bootstrap executables)
- [ ] Fix bootstrapping complaining when multiple dotfile dirs and one doesn't
have the bootstrap repo
- [ ] Add ability to have pre/post hooks
- [ ] Add ability to have host or tag specific files

- [x] Add regex file exclusions

- [ ] Add init command to create a new dotfile repo
- [ ] Add clone command to wrap git & pull
- [ ] When cloning, prompt to bootstrap
- [ ] When cloning, prompt to add any tags
- [ ] Go through all files and prompt to install any tags that are present
- [x] Add down command to remove symlinks created by dot
- [x] Down command should remove empty folders created by dot
- [x] Add list command to list symlinks created by dot

- [x] Save last state after upping
- [x] Consolidate with previous state to clean when upping
- [x] Clean should remove empty folders created by dot