badm 0.2.0

But another dotfile manager.
Documentation

BADM

BADM is "But Another Dotfiles Manager".

NOTE: Windows is currently not supported as of this time.

How it Works

BADM moves files to the set dotfiles directory, replicating the file structure of the file's original location, and then replacing the file at the original location with a symlink to the stored dotfile.

Example Workflow

If our user ferris has a file directory similar to below and would like to store their .gitconfig file as a dotfile:

By running badm set-dir ~/.dotfiles they first create and set the location to store dotfiles.

Then by using badm stow ~/.gitconfig or badm stow .gitconfig if ferris's current directory is /home/ferris, two things will happen: 1. BADM will replicate the file path of the .gitconfig file in the .dotfiles directory and move the .gitconfig file there. This allows for an easily and replicable way to deal with dotfiles across multiple systems. 2. BADM will then create a symlink of the .gitconfig file at its original source location which points to the stored .gitconfig dotfile.

Commands

  • 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.
    • REVIEW: recursive flag?
  • badm rollout <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 remove <FILE> - remove the stored file from the dotfiles directory and replace the symlink with the original file.

Roadmap

  • Basic cli functionality to:
    • create/set dotfiles directory
    • store dotfiles
    • roll-out dotfiles
    • remove dotfiles
  • Recursive flag for commands
  • Migrate to using toml config file
    • ability to define exclude patterns
    • ability to manage multiple dotfiles directories

License

This project is made available under the MIT license. See the LICENSE file for more information.

See Also