bashlight

Bashlight is a bash script that enhanced your OSX/Linux console prompt.


bashlight

Build Status codecov Releases Github commits (since latest release)

This bash script enhances your OSX/Linux console. The console or “terminal” on macOS comes in the basic equipment therefore it is very slim. This is good as long as you do not work with it every day. If you often go into the console, you should do something for your eyes and install the Solarized colorscheme theme. If you working a lot with GIT, then bashlight can be you a great help. The Bash extension offers you information for Branch and status of your current GIT repositories. Furthermore it contains many commonly used aliases, which allow for fast working on the console. Let your colleagues be amazed !

 _               _     _ _       _     _
| |__   __ _ ___| |__ | (_) __ _| |__ | |_
| '_ \ / _` / __| '_ \| | |/ _` | '_ \| __|
| |_) | (_| \__ \ | | | | | (_| | | | | |_
|_.__/ \__,_|___/_| |_|_|_|\__, |_| |_|\__|
                           |___/

Features

Git management

The background colour represents the current git status

  • green = no changes
  • yellow = changes detected
  • red = untracked files

The chess figure represents the branch you are on. Git flow is also supported.

  • ♔ = king = master
  • ♙ = pawn = development
  • ♘ = knight = feature
  • ♗ = bishop = hotfix
  • ☂ = umbrella = other

Other symbols

  • “⇡⇣” and number behind them show how many commits you are behind/ahead of the remote
  • ”+” symbol when current branch has been changed but uncommited
  • current git branch name, or short SHA1 hash when the head is detached

Prompt

  • Platform-dependent prompt symbol for macOS and Linux
  • No need for patched fonts on remote when using ssh

Github releases

  • This tool written by TheDevMinerTV allows you to create new GitHub releases via the commandline.
  • To use the tool you need to be in the repository of the branch you want to make a release of.
ghr v0.2.1 "New aliases" "We've got a new update where we have changed a lot of aliases"
     /|\         /|\                                 /|\
      |           |                                   |
   version      name                             description

Additional information

You are able to add informations to you prompt by setting following environment variables.

  1. PS_INFO: (string) e.g. dev/stage/prod.
  2. PS_INFO_BRAND: (string) e.g. info/success/warning/danger

Set this variables in your .bashrc (Linux) ord src/profile (macOS) file like so:

export PS_INFO="stage"
export PS_INFO_BRAND="warning"

Notification

On macOS and Linux, you have the option to send notifications from the console. However, the commands are different for this purpose. bashlight provides you a unified interface. You can play sounds, open the message window and use the voice output.

Play sounds

blPlay Submarine

Say words

blSay "OK Computer!"

Notifications

Note: On macOS you can use two arguments.

alert "This is the message"

Notifications

Contains configurations for

  1. Git global config
    • Shortcuts for all commands
    • Enhanced git history with colors with git sl
    • Colous which harmonize with the colors used as background
    • Branch setting
  • Bash aliases (shortcuts)
    • directory
      • ll, la, l
      • cd .. = .. < … < ….
    • git
      • gad — “git add
      • gbr — “git branch
      • gst — “git status
      • gco — “git commit
      • gcs — “git commit -S
      • gdi — “git diff
      • gch — “git checkout
      • gpu — “git pull
      • ghr — “github-release
    • git-ui
      • gig — “gitg --all
      • gik — “gitk --all

Git global configuration

It also include a shell script to set common global bash settings. Before you run the file, take a look in the file. The setting included are tailored to bashlight.


Installation & Requirements

1. get the source code

mkdir -p ~/.bin
cd ~/.bin
git clone https://github.com/vergissberlin/bashlight.git

2. Open your home bash file in editor

~/.bashrc on linux or ~/src/profile on macOS

3. Include bashlight/bashlight with the following line at the end of the file

if [ -f ~/.bin/bashlight/bashlight ]; then
    . ~/.bin/bashlight/bashlight
fi

Optional settings

To install common git and tmux settings are tailored with use for bashlight simply run:

bash ~/.bin/bashlight/install.bash

Supported operating systems

  • Linux
  • macOS
  • Windows with bash shell (Windows subsystem for Linux, WSL)

Optional dependencies

  • coreutils for a colourful, easy to handle directory listing

apt install coreutils

brew install coreutils

Support or Contact

You can contact me (@vergissberlin) or TheDevMinerTV (@TheDevMinerTV) on GitHub. Use the issue tracker to report bugs.

Thank you

  • .. to @riobard, the founder of bash-powrline which this project is based on.
  • .. to the contributers and testers, who help to further improve the project.
  • Further thanks to GitHub for Atom.io and Microsoft for Visual Studio Code.

Made with love and Atom.IO