v1.0.0 shell script

Modular Bashrc Manager

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.

Main screenshot of the script in a termina window.

Showing the 2 commands: ccecho (handle easily style of the code) and the brc-script.

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 ~/.bashrc

    Manual 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, 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.