Advertisement
Guest User

Untitled

a guest
Aug 26th, 2014
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 7.03 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. ###########################################################
  4. # Sets the PS1 bash variable.
  5. ###########################################################
  6.  
  7. # create closure
  8. Ps1="";function ps1() {
  9.    
  10.     #######################################################
  11.     # Colour Constants
  12.     #######################################################
  13.     declare -r local FG_NULL='00'
  14.     declare -r local FG_BLACK='30'
  15.     declare -r local FG_RED='31'
  16.     declare -r local FG_GREEN='32'
  17.     declare -r local FG_BROWN='33'
  18.     declare -r local FG_BLUE='34'
  19.     declare -r local FG_PURPLE='35'
  20.     declare -r local FG_CYAN='36'
  21.     declare -r local FG_WHITE='37'
  22.    
  23.     declare -r local BG_NULL='00'
  24.     declare -r local BG_BLACK='40'
  25.     declare -r local BG_RED='41'
  26.     declare -r local BG_GREEN='42'
  27.     declare -r local BG_BROWN='43'
  28.     declare -r local BG_BLUE='44'
  29.     declare -r local BG_PURPLE='45'
  30.     declare -r local BG_CYAN='46'
  31.     declare -r local BG_WHITE='47'
  32.    
  33.     #######################################################
  34.     # Effect Constants
  35.     #######################################################
  36.     declare -r local DULL='0'
  37.     declare -r local BRIGHT='1'
  38.     declare -r local UNDERLINE='4'
  39.     declare -r local BLINK='5'
  40.     declare -r local INVERT='7'
  41.     declare -r local HIDDEN='8'
  42.    
  43.     #######################################################
  44.     # ANSI Escape Commands
  45.     #######################################################
  46.     declare -r local ESC='\033'
  47.     declare -r local NORMAL="\[$ESC[m\]"
  48.     declare -r local RESET="\[$ESC[${DULL};${FG_WHITE};${BG_NULL}m\]"
  49.    
  50.     #######################################################
  51.     # setColour()
  52.     # Makes the output a certain colour
  53.     #------------------------------------------------------
  54.     # Arg 1:    argument to be wrapped
  55.     # Arg 2:    Effect Code
  56.     # Arg 3:    Foreground Colour
  57.     # Arg 4:    Background Colour
  58.     #######################################################
  59.     function setColour() {
  60.         local argument="${1}"
  61.         local effect="${2}"
  62.         local foreground="${3}"
  63.         local background="${3}"
  64.        
  65.         local colour="\[${ESC}[${effect};${foreground};${background}m\]"
  66.        
  67.         #return
  68.         echo "${colour}${argument}${NORMAL}"; return $?
  69.     }
  70.    
  71.     #######################################################
  72.     # Shortcuts
  73.     # Quick access functions for specific colours
  74.     #------------------------------------------------------
  75.     # Arg 1:    argument to be wrapped
  76.     #######################################################
  77.     function black()        { echo "$(setColour "$1" ${DULL} ${FG_BLACK} ${BG_NULL})"; return $?; }
  78.     function red()          { echo "$(setColour "$1" ${DULL} ${FG_RED} ${BG_NULL})"; return $?; }
  79.     function green()        { echo "$(setColour "$1" ${DULL} ${FG_GREEN} ${BG_NULL})"; return $?; }
  80.     function brown()        { echo "$(setColour "$1" ${DULL} ${FG_BROWN} ${BG_NULL})"; return $?; }
  81.     function blue()         { echo "$(setColour "$1" ${DULL} ${FG_BLUE} ${BG_NULL})"; return $?; }
  82.     function purple()       { echo "$(setColour "$1" ${DULL} ${FG_PURPLE} ${BG_NULL})"; return $?; }
  83.     function cyan()         { echo "$(setColour "$1" ${DULL} ${FG_CYAN} ${BG_NULL})"; return $?; }
  84.     function lightGray()    { echo "$(setColour "$1" ${DULL} ${FG_WHITE} ${BG_NULL})"; return $?; }
  85.    
  86.     function darkGray()     { echo "$(setColour "$1" ${BRIGHT} ${FG_BLACK} ${BG_NULL})"; return $?; }
  87.     function brightRed()    { echo "$(setColour "$1" ${BRIGHT} ${FG_RED} ${BG_NULL})"; return $?; }
  88.     function brightGreen()  { echo "$(setColour "$1" ${BRIGHT} ${FG_GREEN} ${BG_NULL})"; return $?; }
  89.     function yellow()       { echo "$(setColour "$1" ${BRIGHT} ${FG_BROWN} ${BG_NULL})"; return $?; }
  90.     function brightBlue()   { echo "$(setColour "$1" ${BRIGHT} ${FG_BLUE} ${BG_NULL})"; return $?; }
  91.     function brightPurple() { echo "$(setColour "$1" ${BRIGHT} ${FG_PURPLE} ${BG_NULL}})"; return $?; }
  92.     function brightCyan()   { echo "$(setColour "$1" ${BRIGHT} ${FG_CYAN} ${BG_NULL})"; return $?; }
  93.     function white()        { echo "$(setColour "$1" ${BRIGHT} ${FG_WHITE} ${BG_NULL})"; return $?; }
  94.    
  95.     function invertBlack()  { echo "$(setColour "$1" ${INVERT} ${FG_BLACK} ${BG_NULL})"; return $?; }
  96.     function invertRed()    { echo "$(setColour "$1" ${INVERT} ${FG_RED} ${BG_NULL})"; return $?; }
  97.     function invertGreen()  { echo "$(setColour "$1" ${INVERT} ${FG_GREEN} ${BG_NULL})"; return $?; }
  98.     function invertBrown()  { echo "$(setColour "$1" ${INVERT} ${FG_BROWN} ${BG_NULL})"; return $?; }
  99.     function invertBlue()   { echo "$(setColour "$1" ${INVERT} ${FG_BLUE} ${BG_NULL})"; return $?; }
  100.     function invertViolet() { echo "$(setColour "$1" ${INVERT} ${FG_PURPLE} ${BG_NULL})"; return $?; }
  101.     function invertCyan()   { echo "$(setColour "$1" ${INVERT} ${FG_CYAN} ${BG_NULL})"; return $?; }
  102.     function invertLightGray()  { echo "$(setColour "$1" ${INVERT} ${FG_WHITE} ${BG_NULL})"; return $?; }
  103.  
  104.     #######################################################
  105.     # Define Prompt
  106.     #######################################################
  107.    
  108.     # characters
  109.     local LB="$(darkGray \[)"
  110.     local RB="$(darkGray \])"
  111.     local AT="$(darkGray \@)"
  112.     local DS="$(white "\\\$")"
  113.    
  114.     # general info
  115.     local General_Path="$(green "\w")"
  116.     local General_History="$(darkGray "${SHLVL}:\!")"
  117.     local General_Time="$(purple "\t")"
  118.     local __general_date_full="$(date +%F)"
  119.     local __general_date_namedDay="$(date +%a)"
  120.     local General_Date="$(purple "$__general_date_namedDay")"
  121.    
  122.     # current folder info
  123.     local __cur_numFiles="\$(/bin/ls -1 | wc -l | sed 's: ::g')"
  124.     local CurFolder_NumFiles="$(brightBlue "$__cur_numFiles files")"
  125.     local __cur_size="\$(/bin/ls -lah | grep -m 1 total | sed 's/total //')"
  126.     local CurFolder_Size="$(brown "${__cur_size}b")"
  127.  
  128.     # current git branch   
  129.     local __branch="\$(__git_ps1 "%s")" || ""
  130.     local GitBranch="$(lightGray "${__branch}")"
  131.     local __git_lb="\$(__git_ps1 "[")" || ""
  132.     local GitLB="$(darkGray "${__git_lb}")"
  133.     local __git_rb="\$(__git_ps1 "]")" || ""
  134.     local GitRB="$(darkGray "${__git_rb}")"
  135.     local CurGitBranch="${GitLB}${GitBranch}${GitRB}"
  136.    
  137.     # user
  138.     local __user_normalName="$(brown "\u")"
  139.     local __user_rootName="$(red "\u")"
  140.     local User_Name="\$(if [ \${UID} = 0 ]; then echo \"${__user_rootName}\"; else echo \"${__user_normalName}\"; fi)"
  141.     local __user_normalHost="$(brown "\h")"
  142.     local __user_rootHost="$(red "\h")"
  143.     local User_Host="\$(if [ \${UID} = 0 ]; then echo \"${__user_rootHost}\"; else echo \"${__user_normalHost}\"; fi)"
  144.     local User_Full="${User_Name}${AT}${User_Host}"
  145.  
  146.     # fun
  147.     local Fun_Limbo="\$(if [ ${SHLVL} -gt 3 ]; then echo \" ${LB}Limbo!${RB} \"; fi)"
  148.     local __fun_pass="$(brightGreen \+)"
  149.     local __fun_fail="$(brightRed \-)"
  150.     local Fun_Smiley="\$(if [ \${pc_isValid} = 0 ]; then echo \"${__fun_pass}\"; else echo \"${__fun_fail}\"; fi)"
  151.        
  152.     #return
  153.     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}"
  154.     return $?
  155. }
  156.  
  157. ###########################################################
  158. # Prompt Commands
  159. # For various dynamic values
  160. ###########################################################
  161.  
  162. function promptCommand() {
  163.     let pc_isValid=${?}
  164.     return $pc_isValid
  165. }; PROMPT_COMMAND=promptCommand;
  166.  
  167. ps1;PS1="$Ps1"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement