Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ###########################################################
- # Sets the PS1 bash variable.
- ###########################################################
- # create closure
- Ps1="";function ps1() {
- #######################################################
- # Colour Constants
- #######################################################
- declare -r local FG_NULL='00'
- declare -r local FG_BLACK='30'
- declare -r local FG_RED='31'
- declare -r local FG_GREEN='32'
- declare -r local FG_BROWN='33'
- declare -r local FG_BLUE='34'
- declare -r local FG_PURPLE='35'
- declare -r local FG_CYAN='36'
- declare -r local FG_WHITE='37'
- declare -r local BG_NULL='00'
- declare -r local BG_BLACK='40'
- declare -r local BG_RED='41'
- declare -r local BG_GREEN='42'
- declare -r local BG_BROWN='43'
- declare -r local BG_BLUE='44'
- declare -r local BG_PURPLE='45'
- declare -r local BG_CYAN='46'
- declare -r local BG_WHITE='47'
- #######################################################
- # Effect Constants
- #######################################################
- declare -r local DULL='0'
- declare -r local BRIGHT='1'
- declare -r local UNDERLINE='4'
- declare -r local BLINK='5'
- declare -r local INVERT='7'
- declare -r local HIDDEN='8'
- #######################################################
- # ANSI Escape Commands
- #######################################################
- declare -r local ESC='\033'
- declare -r local NORMAL="\[$ESC[m\]"
- declare -r local RESET="\[$ESC[${DULL};${FG_WHITE};${BG_NULL}m\]"
- #######################################################
- # setColour()
- # Makes the output a certain colour
- #------------------------------------------------------
- # Arg 1: argument to be wrapped
- # Arg 2: Effect Code
- # Arg 3: Foreground Colour
- # Arg 4: Background Colour
- #######################################################
- function setColour() {
- local argument="${1}"
- local effect="${2}"
- local foreground="${3}"
- local background="${3}"
- local colour="\[${ESC}[${effect};${foreground};${background}m\]"
- #return
- echo "${colour}${argument}${NORMAL}"; return $?
- }
- #######################################################
- # Shortcuts
- # Quick access functions for specific colours
- #------------------------------------------------------
- # Arg 1: argument to be wrapped
- #######################################################
- function black() { echo "$(setColour "$1" ${DULL} ${FG_BLACK} ${BG_NULL})"; return $?; }
- function red() { echo "$(setColour "$1" ${DULL} ${FG_RED} ${BG_NULL})"; return $?; }
- function green() { echo "$(setColour "$1" ${DULL} ${FG_GREEN} ${BG_NULL})"; return $?; }
- function brown() { echo "$(setColour "$1" ${DULL} ${FG_BROWN} ${BG_NULL})"; return $?; }
- function blue() { echo "$(setColour "$1" ${DULL} ${FG_BLUE} ${BG_NULL})"; return $?; }
- function purple() { echo "$(setColour "$1" ${DULL} ${FG_PURPLE} ${BG_NULL})"; return $?; }
- function cyan() { echo "$(setColour "$1" ${DULL} ${FG_CYAN} ${BG_NULL})"; return $?; }
- function lightGray() { echo "$(setColour "$1" ${DULL} ${FG_WHITE} ${BG_NULL})"; return $?; }
- function darkGray() { echo "$(setColour "$1" ${BRIGHT} ${FG_BLACK} ${BG_NULL})"; return $?; }
- function brightRed() { echo "$(setColour "$1" ${BRIGHT} ${FG_RED} ${BG_NULL})"; return $?; }
- function brightGreen() { echo "$(setColour "$1" ${BRIGHT} ${FG_GREEN} ${BG_NULL})"; return $?; }
- function yellow() { echo "$(setColour "$1" ${BRIGHT} ${FG_BROWN} ${BG_NULL})"; return $?; }
- function brightBlue() { echo "$(setColour "$1" ${BRIGHT} ${FG_BLUE} ${BG_NULL})"; return $?; }
- function brightPurple() { echo "$(setColour "$1" ${BRIGHT} ${FG_PURPLE} ${BG_NULL}})"; return $?; }
- function brightCyan() { echo "$(setColour "$1" ${BRIGHT} ${FG_CYAN} ${BG_NULL})"; return $?; }
- function white() { echo "$(setColour "$1" ${BRIGHT} ${FG_WHITE} ${BG_NULL})"; return $?; }
- function invertBlack() { echo "$(setColour "$1" ${INVERT} ${FG_BLACK} ${BG_NULL})"; return $?; }
- function invertRed() { echo "$(setColour "$1" ${INVERT} ${FG_RED} ${BG_NULL})"; return $?; }
- function invertGreen() { echo "$(setColour "$1" ${INVERT} ${FG_GREEN} ${BG_NULL})"; return $?; }
- function invertBrown() { echo "$(setColour "$1" ${INVERT} ${FG_BROWN} ${BG_NULL})"; return $?; }
- function invertBlue() { echo "$(setColour "$1" ${INVERT} ${FG_BLUE} ${BG_NULL})"; return $?; }
- function invertViolet() { echo "$(setColour "$1" ${INVERT} ${FG_PURPLE} ${BG_NULL})"; return $?; }
- function invertCyan() { echo "$(setColour "$1" ${INVERT} ${FG_CYAN} ${BG_NULL})"; return $?; }
- function invertLightGray() { echo "$(setColour "$1" ${INVERT} ${FG_WHITE} ${BG_NULL})"; return $?; }
- #######################################################
- # Define Prompt
- #######################################################
- # characters
- local LB="$(darkGray \[)"
- local RB="$(darkGray \])"
- local AT="$(darkGray \@)"
- local DS="$(white "\\\$")"
- # general info
- local General_Path="$(green "\w")"
- local General_History="$(darkGray "${SHLVL}:\!")"
- local General_Time="$(purple "\t")"
- local __general_date_full="$(date +%F)"
- local __general_date_namedDay="$(date +%a)"
- local General_Date="$(purple "$__general_date_namedDay")"
- # current folder info
- local __cur_numFiles="\$(/bin/ls -1 | wc -l | sed 's: ::g')"
- local CurFolder_NumFiles="$(brightBlue "$__cur_numFiles files")"
- local __cur_size="\$(/bin/ls -lah | grep -m 1 total | sed 's/total //')"
- local CurFolder_Size="$(brown "${__cur_size}b")"
- # current git branch
- local __branch="\$(__git_ps1 "%s")" || ""
- local GitBranch="$(lightGray "${__branch}")"
- local __git_lb="\$(__git_ps1 "[")" || ""
- local GitLB="$(darkGray "${__git_lb}")"
- local __git_rb="\$(__git_ps1 "]")" || ""
- local GitRB="$(darkGray "${__git_rb}")"
- local CurGitBranch="${GitLB}${GitBranch}${GitRB}"
- # user
- local __user_normalName="$(brown "\u")"
- local __user_rootName="$(red "\u")"
- local User_Name="\$(if [ \${UID} = 0 ]; then echo \"${__user_rootName}\"; else echo \"${__user_normalName}\"; fi)"
- local __user_normalHost="$(brown "\h")"
- local __user_rootHost="$(red "\h")"
- local User_Host="\$(if [ \${UID} = 0 ]; then echo \"${__user_rootHost}\"; else echo \"${__user_normalHost}\"; fi)"
- local User_Full="${User_Name}${AT}${User_Host}"
- # fun
- local Fun_Limbo="\$(if [ ${SHLVL} -gt 3 ]; then echo \" ${LB}Limbo!${RB} \"; fi)"
- local __fun_pass="$(brightGreen \+)"
- local __fun_fail="$(brightRed \-)"
- local Fun_Smiley="\$(if [ \${pc_isValid} = 0 ]; then echo \"${__fun_pass}\"; else echo \"${__fun_fail}\"; fi)"
- #return
- Ps1="\n${LB}${User_Full}${RB} ${General_Date} ${General_Time} ${LB}${CurFolder_NumFiles}${RB} ${General_Path} ${CurGitBranch}\n${LB}${General_History}${RB}${Fun_Limbo}${Fun_Smiley}${DS} ${RESET}"
- return $?
- }
- ###########################################################
- # Prompt Commands
- # For various dynamic values
- ###########################################################
- function promptCommand() {
- let pc_isValid=${?}
- return $pc_isValid
- }; PROMPT_COMMAND=promptCommand;
- ps1;PS1="$Ps1"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement