# Load mbashr modules if [ -f "$HOME/.config/mbashr/init.sh" ]; then source "$HOME/.config/mbashr/init.sh" fi Directory structure ~/.config/mbashr/ ├── modules/ │ ├── aliases.sh │ ├── exports.sh │ ├── prompt.sh │ └── kubectl.sh ├── init.sh # generated by mbashr └── modules.lock # tracks file hashes Commands | Command | Description | |---------|-------------| | mbashr list | List available modules | | mbashr reload [module] | Reload all changed modules or just one | | mbashr enable <module> | Add module to startup set | | mbashr disable <module> | Remove from startup set | | mbashr status | Show which modules are loaded and their hash | Example workflow You edit ~/.config/mbashr/modules/aliases.sh and add:
alias gs='git status' Instead of source ~/.bashrc , just run: mbashr
The project is open source (MIT) and contributions are welcome: https://github.com/yourusername/mbashr # Load mbashr modules if [ -f "$HOME/
mbashr reload aliases Your new alias is immediately available. 1. Conditional modules Create ~/.config/mbashr/modules/docker.sh : A: mbashr compares file hashes
mbashr reload says “No changes detected” but my alias isn’t working. A: mbashr compares file hashes. If you edited the file but saved with the same content (e.g., whitespace only), force reload with mbashr reload --force .
# Only load if docker CLI exists if command -v docker &> /dev/null; then alias d='docker' alias dc='docker-compose' complete -F _docker d fi ~/.config/mbashr/hosts/work/aliases.sh ~/.config/mbashr/hosts/personal/aliases.sh mbashr automatically picks the right host directory. 3. Dependency ordering Add a comment to control load order: