badm is a tool that stores your configuration files, or
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 and systematic approach for managing, deploying, and sharing dotfiles
among different systems and users.
badm is ultimately "But Another Dotfiles Manager".
- ferris has created a directory to store their dotfiles at
badm set-dir ~/.dotssets the BADM dotfiles dir at
- badm will search for a badm config file at one of the two valid locations:
$XDG_CONFIG_HOME. If the config file not found, badm will create it under
/home └── ferris └── .dots ├── .badm.toml └── .gitconfig
- to store
~/.gitconfigas a dotfile, ferris runs
badm stow ~/.gitconfig(relative paths work as well)
- badm replicates the path of the dotfile under the
- 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
badm set-dir <DIRECTORY>- set dotfiles directory location, if the location is not created BADM has the ability to create one for you
badm stow <FILE>- store a file in the dotfiles directory, create a symlink at the original source of the stowed file.
badm deploy <FILE>- for new configurations, create symlinks in directories relative to the dotfile's directory hierarchy. Directories to replicate the stored dotfile's directory structure will be created if not found.
badm restore <FILE>- restore the stored file from the dotfiles directory and replace the symlink with the original file
Includes the commands used by the badm crate/application.
Includes paths/fs-specific helper functions.
Handles and saves configuration variables between application calls.
Struct used to traverse directories and collect entries located within.
Moves, stores, and creates files and symlinks.