---
name: "aepromptcmd"
section: "1"
platform: "linux"
package: "aegis"
version: "4.24.3-3"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/aepromptcmd"
---

# aepromptcmd(1)

change prompt color by change state

## NAME

aepromptcmd - change prompt color by change state

## SYNOPSIS

PROMPT\_COMMAND="aepromptcmd"

## DESCRIPTION

The [*bash*(1)](/bash/1.md) 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)](/bash/1.md), 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)](/tigetstr/3.md) function from *terminfo*(3) to do this in a terminal independent way. Code contributions welcome.

## OPTIONS

The following options are understood:

- **-Change** *number*

  This option may be used to specify a particular change within a project. See [*aegis*(1)](/aegis/1.md) for a complete description of this option.

- **-Project** *name*

  This option may be used to select the project of interest. When no **-Project** option is specified, the *AEGIS\_PROJECT* environment variable is consulted. If that does not exist, the user's *$HOME/.aegisrc* file is examined for a default project field (see [*aeuconf*(5)](/aeuconf/5.md) for more information). If that does not exist, when the user is only working on changes within a single project, the project name defaults to that project. Otherwise, it is an error.

- **-Help**

  This option may be used to obtain more information about how to use the *aepromptcmd* program.

- **-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.

See also [*aepromptcmd*(1)](/aepromptcmd/1.md) for options common to all aepromptcmd commands.

All options may be abbreviated; the abbreviation is documented as the upper case letters, all lower case letters and underscores (\_) are optional. You must use consecutive sequences of optional letters.

All options are case insensitive, you may type them in upper case or lower case or a combination of both, case is not important.

For example: the arguments "-project, "-PROJ" and "-p" are all interpreted to mean the **-Project** option. The argument "-prj" will not be understood, because consecutive optional characters were not supplied.

Options and other command line arguments may be mixed arbitrarily on the command line, after the function selectors.\

The GNU long option names are understood. Since all option names for *aepromptcmd* are long, this means ignoring the extra leading '-'. The "**--***option***=***value*" convention is also understood.

## EXIT STATUS

The *aepromptcmd* command will exit with a status of 1 on any error. The *aepromptcmd* command will only exit with a status of 0 if there are no errors.

## ENVIRONMENT VARIABLES

See [*aegis*(1)](/aegis/1.md) for a list of environment variables which may affect this command. See [*aepconf*(5)](/aepconf/5.md) for the project configuration file's *project\_specific* field for how to set environment variables for all commands executed by Aegis.\

## COPYRIGHT

aepromptcmd version 4.24.3.D001\
 Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Peter Miller

The aepromptcmd program comes with ABSOLUTELY NO WARRANTY; for details use the '*aepromptcmd -VERSion License*' command. This is free software and you are welcome to redistribute it under certain conditions; for details use the '*aepromptcmd -VERSion License*' command.\

## AUTHOR

| | | |
| --- | --- | --- |
| Peter Miller | E-Mail: | millerp@canb.auug.org.au |
| `/\/\*` | WWW: | http://www.canb.auug.org.au/~millerp/ |
