Shelf - Dotfile Manager
Shelf is a command-line tool for managing and syncing dotfiles across different machines. It allows you to track, list, remove, and sync your dotfiles with ease.
Features
- Track dotfiles from anywhere in your file system
- List all tracked dotfiles
- Remove dotfiles from tracking
- Sync dotfiles to a specified directory or default location
Installation
To install Shelf, you need to have Rust and Cargo installed on your system. If you don't have them, you can install them from rustup.rs.
Once you have Rust and Cargo installed, you can build and install Shelf using the following command:
cargo install --path .
Usage
Here are some common commands you can use with Shelf:
-
Track a new dotfile:
shelf track /path/to/your/dotfile -
List all tracked dotfiles:
shelf list -
Remove a dotfile from tracking:
shelf remove dotfile_name -
Sync all dotfiles:
shelf syncTo sync to a custom directory:
shelf sync --outdir /path/to/custom/directory
Development
To build the project locally:
cargo build
To run tests:
cargo test
To run the project directly without installing:
cargo run -- [ARGUMENTS]
Replace [ARGUMENTS] with the command you want to run, such as track, list, remove, or sync.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.