diff options
Diffstat (limited to 'bash/colors.sh')
-rw-r--r-- | bash/colors.sh | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/bash/colors.sh b/bash/colors.sh new file mode 100644 index 0000000..7548803 --- /dev/null +++ b/bash/colors.sh @@ -0,0 +1,228 @@ +#!/usr/bin/env bash + +# Customize BASH PS1 prompt to show current GIT repository and branch. +# by Mike Stewart - http://MediaDoneRight.com + +# SETUP CONSTANTS +# Bunch-o-predefined colors. Makes reading code easier than escape sequences. +# I don't remember where I found this. o_O + +# Reset +Color_Off="\[\033[0m\]" # Text Reset + +# Regular Colors +Black="\[\033[0;30m\]" # Black +Red="\[\033[0;31m\]" # Red +Green="\[\033[0;32m\]" # Green +Yellow="\[\033[0;33m\]" # Yellow +Blue="\[\033[0;34m\]" # Blue +Purple="\[\033[0;35m\]" # Purple +Cyan="\[\033[0;36m\]" # Cyan +White="\[\033[0;37m\]" # White + +# Bold +BBlack="\[\033[1;30m\]" # Black +BRed="\[\033[1;31m\]" # Red +BGreen="\[\033[1;32m\]" # Green +BYellow="\[\033[1;33m\]" # Yellow +BBlue="\[\033[1;34m\]" # Blue +BPurple="\[\033[1;35m\]" # Purple +BCyan="\[\033[1;36m\]" # Cyan +BWhite="\[\033[1;37m\]" # White + +# Underline +UBlack="\[\033[4;30m\]" # Black +URed="\[\033[4;31m\]" # Red +UGreen="\[\033[4;32m\]" # Green +UYellow="\[\033[4;33m\]" # Yellow +UBlue="\[\033[4;34m\]" # Blue +UPurple="\[\033[4;35m\]" # Purple +UCyan="\[\033[4;36m\]" # Cyan +UWhite="\[\033[4;37m\]" # White + +# Background +On_Black="\[\033[40m\]" # Black +On_Red="\[\033[41m\]" # Red +On_Green="\[\033[42m\]" # Green +On_Yellow="\[\033[43m\]" # Yellow +On_Blue="\[\033[44m\]" # Blue +On_Purple="\[\033[45m\]" # Purple +On_Cyan="\[\033[46m\]" # Cyan +On_White="\[\033[47m\]" # White + +# High Intensty +IBlack="\[\033[0;90m\]" # Black +IRed="\[\033[0;91m\]" # Red +IGreen="\[\033[0;92m\]" # Green +IYellow="\[\033[0;93m\]" # Yellow +IBlue="\[\033[0;94m\]" # Blue +IPurple="\[\033[0;95m\]" # Purple +ICyan="\[\033[0;96m\]" # Cyan +IWhite="\[\033[0;97m\]" # White + +# Bold High Intensty +BIBlack="\[\033[1;90m\]" # Black +BIRed="\[\033[1;91m\]" # Red +BIGreen="\[\033[1;92m\]" # Green +BIYellow="\[\033[1;93m\]" # Yellow +BIBlue="\[\033[1;94m\]" # Blue +BIPurple="\[\033[1;95m\]" # Purple +BICyan="\[\033[1;96m\]" # Cyan +BIWhite="\[\033[1;97m\]" # White + +# High Intensty backgrounds +On_IBlack="\[\033[0;100m\]" # Black +On_IRed="\[\033[0;101m\]" # Red +On_IGreen="\[\033[0;102m\]" # Green +On_IYellow="\[\033[0;103m\]" # Yellow +On_IBlue="\[\033[0;104m\]" # Blue +On_IPurple="\[\033[10;95m\]" # Purple +On_ICyan="\[\033[0;106m\]" # Cyan +On_IWhite="\[\033[0;107m\]" # White + +# Various variables you might want for your PS1 prompt instead +Time12h="\T" +Time12a="\@" +PathShort="\w" +PathFull="\W" +NewLine="\n" +Jobs="\j" + + +# This PS1 snippet was adopted from code for MAC/BSD I saw from: http://allancraig.net/index.php?option=com_content&view=article&id=108:ps1-export-command-for-git&catid=45:general&Itemid=96 +# I tweaked it to work on UBUNTU 11.04 & 11.10 plus made it mo' better + +export PS1='$(if [ $? != 0 ]; then \ + echo "'$BIRed' (!!) '$Color_Off'"; \ +fi)'$IBlack$Time12h$Color_Off' '$BYellow$PathShort/$Color_Off'\ +$(git branch &>/dev/null;\ +if [ $? -eq 0 ]; then \ + echo "$(echo `git status` | grep "Changes" > /dev/null 2>&1; \ + if [ "$?" != "0" ]; then \ + # @4 - Clean repository - nothing to commit + echo "'$Green'"$(__git_ps1 " (%s)")"'$Color_Off'"; \ + else \ + # @5 - Changes to working tree + echo "'$IRed'"$(__git_ps1 " {%s}")"'$Color_Off'"; \ + fi)" - $(echo "'$IBlack'"`git sha | head -c 7`"'$Color_Off'"); \ +fi)$(if [[ $IN_NIX_SHELL == 1 ]]; then\ + echo "\n'$IBlack'~>'$Color_Off' '$Purple'nix-shell'$Color_Off' ('$BIBlue'$name'$Color_Off')'$Color_Off'" ;\ +fi)$(echo "\n'$BIPurple'\$'$Color_Off' ";)' + + +export end="\033[0m" +export black="\033[0;30m" +export blackb="\033[1;30m" +export white="\033[0;37m" +export whiteb="\033[1;37m" +export red="\033[0;31m" +export redb="\033[1;31m" +export green="\033[0;32m" +export greenb="\033[1;32m" +export yellow="\033[0;33m" +export yellowb="\033[1;33m" +export blue="\033[0;34m" +export blueb="\033[1;34m" +export purple="\033[0;35m" +export purpleb="\033[1;35m" +export lightblue="\033[0;36m" +export lightblueb="\033[1;36m" + +function black { + echo -e "${black}${1}${end}" +} +export -f black + +function blackb { + echo -e "${blackb}${1}${end}" +} +export -f blackb + +function white { + echo -e "${white}${1}${end}" +} +export -f white + +function whiteb { + echo -e "${whiteb}${1}${end}" +} +export -f whiteb + +function red { + echo -e "${red}${1}${end}" +} +export -f red + +function redb { + echo -e "${redb}${1}${end}" +} +export -f redb + +function green { + echo -e "${green}${1}${end}" +} +export -f green + +function greenb { + echo -e "${greenb}${1}${end}" +} +export -f greenb + +function yellow { + echo -e "${yellow}${1}${end}" +} +export -f yellow + +function yellowb { + echo -e "${yellowb}${1}${end}" +} +export -f yellowb + +function blue { + echo -e "${blue}${1}${end}" +} +export -f blue + +function blueb { + echo -e "${blueb}${1}${end}" +} +export -f blueb + +function purple { + echo -e "${purple}${1}${end}" +} +export -f purple + +function purpleb { + echo -e "${purpleb}${1}${end}" +} +export -f purpleb + +function lightblue { + echo -e "${lightblue}${1}${end}" +} +export -f lightblue + +function lightblueb { + echo -e "${lightblueb}${1}${end}" +} +export -f lightblueb + +function ,colors { + black "black" + blackb "blackb" + white "white" + whiteb "whiteb" + red "red" + redb "redb" + green "green" + greenb "greenb" + yellow "yellow" + yellowb "yellowb" + blue "blue" + blueb "blueb" + purple "purple" + purpleb "purpleb" + lightblue "lightblue" + lightblueb "lightblueb" +} |