aepromptcmd(1)

NAME
aepromptcmd - change prompt color by change state

SYNOPSIS
PROMPT_COMMAND="aepromptcmd"

DESCRIPTION
The bash(1) shell has an interesting property: If the PROMPT_COMMAND vaiable is set, the value is executed as a command prior to issuing each primary prompt. (Actually, it can be a seties of semicolon separated commands.)

In order to change the text back to normal, the PS1 variable needs to have "\33[0m" somewhere near the end, otherwise things can get a little difficult to read. If you are using bash(1), you need to let it know these are unprintable (like this: "\[\33[0m\]") or it messes up command line editing.

The aepromptcmd command is used to set the color of the prompt, based on the state of the current change. This is an idea taken from Kent Beck's Test Driven Development book. If the change is in the being developed or being integrated state and it needs to be built, the prompt is red; if it is built but it needs to be tested, the prompt is magenta, otherwise it is green.

Example
Here is a short script you can put in your .bashrc file to turn on prompt coloring:
    if [ "$PS1" ] then
        case "$PROMPT_COMMAND" in
        "" )
        PROMPT_COMMAND="aepromptcmd"
        PS1="$PS1^[[0m"
        ;;
        *aepromptcmd*)
        ;;
        *)
        PROMPT_COMMAND="$PROMPT_COMMAND;aepromptcmd"
        PS1="$PS1\[\33[0m\]"
        ;;
        esac
        export PROMPT_COMMAND
        export PS1 fi
Note that this usually leaves your prompt default (black) when you are not somewhere inside a development directory.

  Limitations
The aepromptcmd command uses the ANSI color escape sequences. It really should to use the tigetstr(3) function from terminfo(3) to do this in a terminal independent way. Code contributions welcome.

OPTIONS
The following options are understood:

-Verbose
    By default error messages are supressed, so that the prompt will be normal when you are outside an Aegis work area. Use this option to tuen error messages back on.