Skip to content
Ahmad Assaf edited this page Oct 16, 2020 · 1 revision

Welcome to the gaudi-bash wiki!

This Wiki is your place to know how gaudi-bash works and hopefully provide as much information as possible to help you get up to speed contribute.

gaudi-bash is a fork from the infamous gaudi-bash with lots of opinionated changes in the code to suit my OCD-like nature. I am by no means a bash expert but I tried my best to conform to the best practices in here.

gaudi-bash itself is inspired by oh-my-zsh and includes autocompletion, themes, aliases, custom functions, and more. It provides a solid framework for using, developing and maintaining shell scripts and custom commands for your daily work. If you're using the Bourne Again Shell (Bash) on a regular basis and have been looking for an easy way on how to keep all of these nice little scripts and aliases under control, then gaudi-bash is for you! Stop polluting your ~/bin directory and your .bashrc file, fork/clone gaudi-bash and start hacking away.

Contributing

Please take a look at the Contribution Guidelines before reporting a bug or providing a new feature.

The Development Guidelines have more information on some of the internal workings of gaudi-bash, please feel free to read through this page if you're interested in how gaudi-bash loads its components.

Installation

gaudi-bash is installed by running the following commands in your terminal. You can install this via the command-line with either curl or wget, whichever is installed on your machine.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ahmadassaf/gaudi-bash/master/install.sh)"

Manual inspection: It's a good idea to inspect the install script from projects you don't yet know. You can do that by downloading the install script first, looking through it so everything looks normal, then running it.

If you wish to do a standalone installation then you proceed with the following steps:

  1. Check a clone of this repo: git clone https://github.com/ahmadassaf/gaudi-bash.git ~/.bash_it
  2. Run ~/.bash_it/setup.sh (it automatically backs up your ~/.bash_profile)
  3. Edit your ~/.bash_profile file in order to customize gaudi-bash.

The install script can take the following options:

  • --silent: Ask nothing and install using default settings.
  • --no-modify-config: Do not modify the existing config file (~/.bash_profile or ~/.bashrc).

When run without the --silent switch, gaudi-bash only enables a sane default set of functionality to keep your shell clean and to avoid issues with missing dependencies. Feel free to enable the tools you want to use after the installation.

When you run without the --no-modify-config switch, the gaudi-bash installer automatically modifies/replaces your existing config file. Use the --no-modify-config switch to avoid unwanted modifications, e.g. if your Bash config file already contains the code that loads gaudi-bash.

NOTE: Keep in mind how Bash loads its configuration files, .bash_profile for login shells (and in macOS in terminal emulators like Terminal.app or iTerm2) and .bashrc for interactive shells (default mode in most of the GNU/Linux terminal emulators), to ensure that gaudi-bash is loaded correctly.

A good "practice" is sourcing .bashrc into .bash_profile to keep things working in all the scenarios.

To achieve this, you can add this snippet in your .bash_profile:

if [[ -f ~/.bashrc ]]; then
  . ~/.bashrc
fi

Refer to the official Bash documentation to get more info.

Updating

To update gaudi-bash to the latest version, simply run:

gaudi-bash update

gaudi-bash separates the core engine from the components (plugins, aliases, completions, etc.) more on that to come in the design section. the gaudi-bash will make sure the latest core code is pulled, if you would like to make sure that latest components are being pulled as well then you need to pass the all parameter bash-it update all.

Uninstalling

To uninstall gaudi-bash, run the uninstall.sh script found in the $BASH_IT directory:

cd $BASH_IT
./uninstall.sh
Clone this wiki locally