# WIP: badm - But Another Dotfiles Manager ![Maintenance](https://img.shields.io/badge/maintenance-actively--developed-brightgreen.svg) [![Build Status](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fjakeschurch%2Fbadm%2Fbadge&2Fbadge&label=build&logo=none)](https://actions-badge.atrox.dev/jakeschurch/badm/goto) [![Crates.io](https://img.shields.io/crates/v/badm)](https://crates.io/crates/badm) [![Documentation](https://docs.rs/badm/badge.svg)](https://docs.rs/badm) ![OS Support](https://img.shields.io/badge/OS%20Support-Unix--only-orange) [![License](https://img.shields.io/crates/l/badm)](LICENSE) `badm` is "But Another [Dotfiles](https://en.wikipedia.org/wiki/Hidden_file_and_hidden_directory) Manager". ## How it works badm stores your dotfiles in a directory that replicates the directory hierarchy of the dotfiles' original path, and creates symlinks to their original paths. This creates a standardized approach for managing, deploying, and sharing dotfiles among different systems and users. ### Quick Demo - ferris has created a directory to store their dotfiles at `~/.dots` - `badm set-dir ~/.dots` sets the BADM dotfiles dir at `~/.dots` - badm will search for a badm config file at one of the two valid locations: `$HOME` and `$XDG_CONFIG_HOME`. If the config file not found, badm will create it under `$HOME`
/home └── ferris └── .dots ├── .badm.toml └── .gitconfig- to store `~/.gitconfig` as a dotfile, ferris runs `badm stow ~/.gitconfig` _(relative paths work as well)_ - badm replicates the path of the dotfile under the `~/.dots` directory - the dotfile is moved to this new path in the set dotfiles directory and symlinked at its original path which points to its new path
/home └── ferris ├── .badm.toml ├── .dots │ └── home │ └── ferris │ └── .gitconfig └── .gitconfig -> /home/ferris/.dots/home/ferris/.gitconfig## WIP: Getting Started/Installation TODO: will populate for v1.0.0 release ## Commands * `badm set-dir