Modular Bashrc Manager
Description
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.
Feature
- 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/ ├── 📂 installer/ │ └── 📄 brc-script-install.sh ├── 📂 scripts-available/ ├── 📂 scripts-enabled/ ├── 📂 scripts-needed/ │ ├── 📄 brc-script.sh │ └── 📄 ccecho.sh └── 📂 scripts-removed/
- ~/.bashrc.d/: Main directory for managing Bash scripts.
- installer/: Contains the installer and base script.
- brc-script-install.sh: Installer script.
- 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.sh: Main needed file.
- ccecho.sh: Utility that helps color and format the text.
- scripts-removed/: Backup of removed scripts, timestamped.
Installation
Automated Installation
1 - Clone the repository:
git clone https://gitea.sld-server.org/sld-admin/Modular-Bashrc-Manager cd modular-bashrc-manager/installer
2 - 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, and scripts-removed.
- Append the required configuration to your .bashrc file.
- Copy the main brc-script.sh script and ccecho.sh to scripts-needed/.
Reload the .bashrc file by running:
source ~/.bashrcManual Installation
Copy the brc-script.sh and ccecho.sh files 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 .bashrc file:
# 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 the scripts-available/ folder.
- -m : Modify an existing script.
- -l : List all available and enabled scripts.
- -e : Enable a script from the scripts-available/ folder.
- -d : Disable an enabled script.
- -r : Remove a script, backing it up in scripts-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
cceho: 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
Normal text:
black, red, green, yellow, blue, magenta, cyan, white, bblack
Colored Background:
bred, bgreen, byellow, bblue, bmagenta, bcyan, bwhite
Styles
bold, dim, italic, underline, blink, reverse, hidden, strikeMake 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.
Details
Name: Modular Bashrc Manager
Categories: shell, script
Size: 24 KB
Created: 01/10/2024
Updated: 17/06/2025
Autor: Simone Cusano
Author Website: https://sld-server.org
Gitea Repository: Gitea Link