https://github.com/koenigseder/badm
BADM - Born Again Dotfile Manager
https://github.com/koenigseder/badm
dotfiles golang linux stateful
Last synced: 4 months ago
JSON representation
BADM - Born Again Dotfile Manager
- Host: GitHub
- URL: https://github.com/koenigseder/badm
- Owner: Koenigseder
- Created: 2025-04-18T12:46:08.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-11-22T08:42:39.000Z (8 months ago)
- Last Synced: 2025-11-22T10:29:57.225Z (8 months ago)
- Topics: dotfiles, golang, linux, stateful
- Language: Go
- Homepage:
- Size: 59.6 KB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# BADM - Born Again Dotfile Manager
BADM is a new (yes, again a new one) Dotfile manager. It uses Git as its backbone.
This Dotfile manager is **ready to use**, but some features are not implemented yet. Have a
look at [Planned features / Known issues](#planned-features--known-issues) to see what is planned to be added.
## Setup
If it's your first time you are using this tool, you might want to follow these setup steps:
### Create a fresh Dotfiles repository
In case you do not have a repository to manage your Dotfiles (or you want to start over) it is pretty straight forward
to get going:
1. Create new Dotfiles repository
1. Create a remote repository (e.g. on GitHub, GitLab, ...). Make sure you are able to push and pull to that
repository.
2. `badm new `
2. Start managing your Dotfiles
1. `badm add ` → Your Dotfiles get automatically pushed to your remote repository
2. `badm rm ` → Your files get removed from the Dotfiles repository and restored
to its original location. **No files get lost!**
3. `badm save` → Write any changes to the local Dotfiles repository to the remote one. Needed after each change
to local Dotfiles.
### Get an existing BADM repository
`badm get ` - It's that easy.
## Commands
| Command | Action |
|--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `add` | Add a Dotfile (or multiple) to your remote Dotfile repository. It gets replaced with a symlink. Choose the `--override` flag to override already existing files on your system. |
| `rm` | Remove a Dotfile (or multiple) from your remote Dotfile repository. The symlink gets replaced with the original file. |
| `save` | Write any changes to the local Dotfiles repository to the remote one. Needed after each change to local Dotfiles. |
| `fetch` | Manually fetch the current remote repository stage and persist remote changes onto the local system. Choose the `--override` flag to override already existing files on your system. |
| `new` | Initialize a fresh local BADM repository, where new Dotfiles can be added afterwards. |
| `get` | Pull an already existing BADM remote repository and persist everything on the system. |
| `reset` | Reset all changes made by BADM. It replaces populated symlinks with the original Dotfiles. Choose this command if you do not want to use BADM anymore. Choose the `--dryRun` flag to see what would happen when executing this command. |
| `update` | Update BADM to the newest version in-place. |
| `help` | Print helpful information. |
| `version` | Check your current version. |
| `completion` | Generate the autocompletion script for the specified shell. |
## Planned features / Known issues
- Execute custom scripts on wish (e.g. pacman, yay, ...)
- Actual configuration features