DEV Community

Spencer Krum
Spencer Krum

Posted on

3 1

Bash Prompt snip for IBM Cloud

The below script will add a pleasing visual queue of which account and region your are targeted at with IBM Cloud. Turn off color by setting $IBMCLOUD_PS1_COLOR_NO to any value. set_prompt and PROMPT_COMMAND example below is just an example and you can use the __ibmcloud_ps1 function anywhere you'd configure your prompt.

Alt Text

# From Arch Wiki

txtblk='\e[0;30m' # Black - Regular
txtred='\e[0;31m' # Red
txtgrn='\e[0;32m' # Green
txtylw='\e[0;33m' # Yellow
txtblu='\e[0;34m' # Blue
txtpur='\e[0;35m' # Purple
txtcyn='\e[0;36m' # Cyan
txtwht='\e[0;37m' # White
bldblk='\e[1;30m' # Black - Bold
bldred='\e[1;31m' # Red
bldgrn='\e[1;32m' # Green
bldylw='\e[1;33m' # Yellow
bldblu='\e[1;34m' # Blue
bldpur='\e[1;35m' # Purple
bldcyn='\e[1;36m' # Cyan
bldwht='\e[1;37m' # White
unkblk='\e[4;30m' # Black - Underline
undred='\e[4;31m' # Red
undgrn='\e[4;32m' # Green
undylw='\e[4;33m' # Yellow
undblu='\e[4;34m' # Blue
undpur='\e[4;35m' # Purple
undcyn='\e[4;36m' # Cyan
undwht='\e[4;37m' # White
bakblk='\e[40m'   # Black - Background
bakred='\e[41m'   # Red
bakgrn='\e[42m'   # Green
bakylw='\e[43m'   # Yellow
bakblu='\e[44m'   # Blue
bakpur='\e[45m'   # Purple
bakcyn='\e[46m'   # Cyan
bakwht='\e[47m'   # White
txtrst='\e[0m'    # Text Reset


# Prompt snippet to show ibmcloud account status 
__ibmcloud_ps1() {
    if [ -f ~/.bluemix/config.json ]; then
        ibm_user=$(cat ~/.bluemix/config.json  | jq '.Account.Owner' | tr -d '"')
        region=$(cat ~/.bluemix/config.json  | jq '.Region' | tr -d '"')
        if [ ! -z "${IBMCLOUD_PS1_COLOR_NO}" ]; then
            echo "${ibm_user}@${region}"
        else
            echo "\[${bldpur}\]${ibm_user}\[${txtrst}\]@\[${bldylw}\]${region}\[${txtrst}\]"
        fi
    fi

}


# Just an example of where this goes
set_prompt() {
    PS1="[$(__ibmcloud_ps1)]"
    PS1+="\[${bldgrn}\]\u@\h\[${txtrst}\]:\[${bldblu}\]\w\[${txtrst}\]$ "
}

PROMPT_COMMAND=set_prompt

Image of Datadog

How to Diagram Your Cloud Architecture

Cloud architecture diagrams provide critical visibility into the resources in your environment and how they’re connected. In our latest eBook, AWS Solution Architects Jason Mimick and James Wenzel walk through best practices on how to build effective and professional diagrams.

Download the Free eBook

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more