5.8 KiB
Modular Bashrc Manager
A simple, modular, and clean way to manage your .bashrc file in Linux.
This project provides a modular system for managing Bash scripts within the .bashrc environment. It allows users to easily enable, disable, create, and manage custom scripts through a well-structured directory layout, making the .bashrc configuration cleaner and easier to maintain.
Features
- Modular Setup: Keep your .bashrc organized by loading only necessary scripts at runtime.
- Script Management: Easily create, enable, disable, and manage scripts through a simple command interface.
- Automatic Directory Structure: The installer automatically creates directories for managing available, enabled, removed, and required scripts.
- Customizable Script Templates: When creating a new script, a template with placeholders for options, variables, functions, and execution logic is provided.
- Easy Integration: Automatically integrate with your existing .bashrc setup.
- Colorful Echo (
ccecho): Print colored and styled messages for better terminal output, ( usable even outside of the brc-script environment )
Directory Structure
After installation, the system uses the following directory layout to manage scripts:
~/.bashrc.d/: Main directory for managing Bash scripts.installer/: Contains the installer and base script.brc-script-install.sh
scripts-available/: Scripts available to be enabled.scripts-enabled/: Symbolic links to enabled scripts.scripts-needed/: Essential scripts required for the system to work.brc-script.shccecho.sh
scripts-removed/: Backup of removed scripts, timestamped.
Installation
Automated Installation
-
Clone the repository:
git clone https://github.com/your-repo/modular-bashrc-manager.git cd modular-bashrc-manager/installer -
Make the installer executable and run it:
chmod +x brc-script-install.sh ./brc-script-install.sh
The installer will:
- Create the necessary directory structure:
scripts-needed,scripts-enabled,scripts-available, andscripts-removed. - Append the required configuration to your .bashrc file.
- Copy the main
brc-script.shscript andccecho.shtoscripts-needed/.
Reload the .bashrc file by running:
source ~/.bashrc
Manual Installation
-
Copy the
brc-script.shandccecho.shfiles to the~/.bashrc.d/scripts-needed/folder:cp brc-script.sh ccecho.sh ~/.bashrc.d/scripts-needed/ chmod 750 ~/.bashrc.d/scripts-needed/brc-script.sh ~/.bashrc.d/scripts-needed/ccecho.sh -
Append the following lines to your
.bashrcfile:# Modular Bashrc if [ -d ~/.bashrc.d ]; then for needed in ~/.bashrc.d/scripts-needed/*.sh; do [ -r "$needed" ] && source "$needed" done unset needed for file in ~/.bashrc.d/scripts-enabled/*.sh; do [ -r "$file" ] && source "$file" done unset file fi -
Create the necessary directories:
mkdir -p ~/.bashrc.d/scripts-needed ~/.bashrc.d/scripts-enabled ~/.bashrc.d/scripts-available ~/.bashrc.d/scripts-removed -
Reload
.bashrc:source ~/.bashrc
Usage
The brc-script.sh script provides a series of commands to manage your .bashrc scripts:
-c: Create a new script in thescripts-available/folder.-m: Modify an existing script.-l: List all available and enabled scripts.-e: Enable a script from thescripts-available/folder.-d: Disable an enabled script.-r: Remove a script, backing it up inscripts-removed/.
Example Commands
-
Create a new script:
brc-script -c -
List all available scripts:
brc-script -l -
Enable a script:
brc-script -e -
Disable a script:
brc-script -d -
Remove a script:
brc-script -r
Extra Utilities
ccecho: Colorful Echo for Enhanced Output
The project includes a utility script ccecho.sh located in scripts-needed/, which defines a function ccecho. This command allows you to print styled and colored messages to the terminal.
Usage
ccecho -t green -b black -s bold "Success!"
ccecho -t red -s underline "Error!"
ccecho "Normal message without styling"
Available Text Colors
black, red, green, yellow, blue, magenta, cyan, white, bblack, bred, bgreen, byellow, bblue, bmagenta, bcyan, bwhite
Background Colors
Same as above, applied with -b
Styles
bold, dim, italic, underline, blink, reverse, hidden, strike
Make ccecho Globally Available
If you'd like to use ccecho in other terminal sessions or scripts, you can source it in your .bashrc:
source ~/.bashrc.d/scripts-needed/ccecho.sh
Why Use This System?
Managing a large .bashrc file can become unmanageable, especially when adding multiple custom commands or functions. This system offers a structured approach to handle modular scripts, making it easier to enable or disable specific configurations without manually editing the .bashrc file each time.
Benefits
- Organization: Keep your .bashrc clean and easy to maintain by separating scripts.
- Simplicity: Use simple commands to manage scripts without editing .bashrc directly.
- Safety: Removed scripts are safely backed up in the
scripts-removed/directory.
Contributing
Contributions are welcome! If you find any bugs or have suggestions for improvements, feel free to open an issue or submit a pull request.
License
This project is licensed under the GNU General Public License v3.0.