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.
- 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 )
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.
-
Clone the repository:
git clone https://github.com/SimoLinuxDesign/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-
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
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/.
-
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
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.
ccecho -t green -b black -s bold "Success!"
ccecho -t red -s underline "Error!"
ccecho "Normal message without styling"black, red, green, yellow, blue, magenta, cyan, white, bblack, bred, bgreen, byellow, bblue, bmagenta, bcyan, bwhite
Same as above, applied with -b
bold, dim, italic, underline, blink, reverse, hidden, strike
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.shManaging 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.
- 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.
Contributions are welcome! If you find any bugs or have suggestions for improvements, feel free to open an issue or submit a pull request.
This project is licensed under the GNU General Public License v3.0.