Command Prompt

# customize the prompt
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
    # We have color support; assume it's compliant with Ecma-48
    # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
    # a case would tend to support setf rather than setaf.)
    dark_black_on='\[\e[0;30m\]'
    dark_red_on='\[\e[0;31m\]'
    dark_green_on='\[\e[0;32m\]'
    dark_yellow_on='\[\e[0;33m\]'
    dark_blue_on='\[\e[0;34m\]'
    dark_purple_on='\[\e[0;35m\]'
    dark_cyan_on='\[\e[0;36m\]'
    dark_white_on='\[\e[0;37m\]'
    bold_black_on='\[\e[01;30m\]'
    bold_red_on='\[\e[01;31m\]'
    bold_green_on='\[\e[01;32m\]'
    bold_yellow_on='\[\e[01;33m\]'
    bold_blue_on='\[\e[01;34m\]'
    bold_purple_on='\[\e[01;35m\]'
    bold_cyan_on='\[\e[01;36m\]'
    bold_white_on='\[\e[01;37m\]'
    black_on='\[\e[30m\]'
    red_on='\[\e[31m\]'
    green_on='\[\e[32m\]'
    yellow_on='\[\e[33m\]'
    blue_on='\[\e[34m\]'
    purple_on='\[\e[35m\]'
    cyan_on='\[\e[36m\]'
    white_on='\[\e[37m\]'
    color_off='\[\e[00m\]'
fi
function __duane_prompt_command() {
    local EXIT="$?"             # This needs to be first
    local ERROR=""
    if [ $EXIT != 0 ]; then
        local ERROR=" $bold_red_on($EXIT)"
    fi
    PS1="$bold_red_on[$dark_blue_on\u$dark_black_on@$blue_on\h$dark_purple_on \w$ERROR$bold_red_on]$dark_red_on\$$color_off "
}
if [ "$PS1" ]; then
  case $TERM in
    xterm*)
        if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
            PROMPT_COMMAND='__duane_prompt_command; /etc/sysconfig/bash-prompt-xterm'
        else
            PROMPT_COMMAND='__duane_prompt_command; printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
        fi
        ;;
    screen)
        if [ -e /etc/sysconfig/bash-prompt-screen ]; then
            PROMPT_COMMAND='__duane_prompt_command; /etc/sysconfig/bash-prompt-screen'
        else
            PROMPT_COMMAND='__duane_prompt_command; printf "\033]0;%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"'
        fi
        ;;
    *)
        [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND='__duane_prompt_command; /etc/sysconfig/bash-prompt-default'
        ;;
  esac
  # Turn on checkwinsize
  shopt -s checkwinsize
  # call __duane_prompt_command() once if PROMPT_COMMAND is overridden by something that doesn't touch PS1
  #__duane_prompt_command
fi