X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=.profile.d%2Fps1.bashrc;h=5f023f8617c6b1ddcb6129f20d7d50510ad88b0d;hb=6a4d7771ef379836593080fd303b647ed5a853cb;hp=bb05253684a0845ad8b40ad61b2fc739f8f7c1bc;hpb=948d7186089b915704df2f0b0f48fd8508db077b;p=profile.git diff --git a/.profile.d/ps1.bashrc b/.profile.d/ps1.bashrc index bb05253..5f023f8 100644 --- a/.profile.d/ps1.bashrc +++ b/.profile.d/ps1.bashrc @@ -1,21 +1,38 @@ # $Id$ -# VERSION 1.3 (2005-08-15) # # Coloured prompts for bash. # # Prompt is user@host:/dir$ where host is highlighted in green if the last # command exited 0 or in red (followed by the error code) otherwise. # -# Override the PROMPT_OK_COLOUR and PROMPT_FAILED_COLOUR environment variables -# to set different colours. +# Colouring is performed by the __ps1_col() and __ps1_ret() functions. +# We redirect stderr to /dev/null when calling these functions to prevent +# bash complaining about not knowing them when you su to another user, +# retaining PS1 but not the function definitions. # -# To use, add a call to __ps1 in your .bash_profile. +# To use, add a call to __ps1 in your .bash_profile file. +# + +case $(tput colors) in + 256) + export PROMPT_OK_COLOUR="1;38;5;34" + export PROMPT_FAILED_COLOUR="1;38;5;160" + ;; + + 88) + export PROMPT_OK_COLOUR="1;38;5;24" + export PROMPT_FAILED_COLOUR="1;38;5;48" + ;; -export PROMPT_OK_COLOUR=${PROMPT_OK_COLOUR:-32} -export PROMPT_FAILED_COLOUR=${PROMPT_OK_COLOUR:-31} + *) + export PROMPT_OK_COLOUR="1;32" + export PROMPT_FAILED_COLOUR="1;31" + ;; +esac function __ps1() { - export PS1='\u@\[\033[1;$(__ps1_col $?)m\]\h\[\033[0m\]$(__ps1_ret $?):\w\$ ' + export PS1='\u@\[\033[$(__ps1_col $?)m\]\h\[\033[0m\]$(__ps1_ret $?):\w\$ ' + export PS1='\u@\[\033[$(__ps1_col $? 2>/dev/null)m\]\h\[\033[0m\]$(__ps1_ret $? 2>/dev/null):\w\$ ' return 0 }