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.sh
      • ccecho.sh
    • scripts-removed/: Backup of removed scripts, timestamped.

Installation

Automated Installation

  1. Clone the repository:

    git clone https://github.com/your-repo/modular-bashrc-manager.git
    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

  1. 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
    
  2. 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
    
  3. Create the necessary directories:

    mkdir -p ~/.bashrc.d/scripts-needed ~/.bashrc.d/scripts-enabled ~/.bashrc.d/scripts-available ~/.bashrc.d/scripts-removed
    
  4. 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

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.

Description
A simple, modular, and clean way to manage your .bashrc file on linux.
https://sld-server.org/projects/Modular-Bashrc-Manager/
Readme 82 KiB
Languages
Shell 100%