Mega developers prompt
export VIRTUAL_ENV_DISABLE_PROMPT=1 | |
function parse_svn_branch { | |
if [ -d '.svn' ]; then | |
ref=$(svn info | grep URL | awk -F/ '{print $NF}' 2> /dev/null) || return | |
cur=$(pwd | awk -F/ '{print $NF}' 2> /dev/null) || return | |
if [ $ref != $cur ]; then | |
echo -ne "\xE2\x9C\xB6${ref}" | |
fi | |
fi | |
} | |
function parse_git_branch { | |
ref=$(git symbolic-ref HEAD 2> /dev/null) || return | |
echo -ne "\xE2\x9C\xB9${ref#refs/heads/}" | |
} | |
function display_virtualenv { | |
if [ -n "$VIRTUAL_ENV" ]; then | |
ref=$(basename $VIRTUAL_ENV) | |
echo -ne "\xE2\x9D\xB0${ref}\xE2\x9D\xB1" | |
fi | |
} | |
function display_virtualenv_path { | |
if [ -n "$VIRTUAL_ENV" ]; then | |
ref=$(basename $VIRTUAL_ENV) | |
echo -ne "${ref}" | |
fi | |
} | |
function decorate_prompt { | |
clock= #"[\[\e[31;49m\]\@\[\e[0m\]] " | |
svn="\[\e[1;35m\]\$(parse_svn_branch)\[\e[0m\]" | |
git="\[\e[1;34m\]\$(parse_git_branch)\[\e[0m\]" | |
user="\h:" #"\u@\h:" | |
ref=$(basename "$VIRTUAL_ENV") | |
basedir=$(pwd | awk -F/ '{print $NF}' 2> /dev/null) | |
if [ "$basedir" == "$ref" ]; then | |
virtual="\[\e[31;36m\]\$(display_virtualenv_path)\[\e[0m\]" | |
working_dir=$(dirname `pwd`) | |
export PS1="${clock}${user}\[\e[37m\]${working_dir/\/home\/phil/~}\[\e[0m\]/${virtual}${svn}${git} \$ " | |
else | |
virtual="\[\e[31;36m\]\$(display_virtualenv)\[\e[0m\]" | |
export PS1="${clock}${user}\[\e[37m\]\w\[\e[0m\]${virtual}${svn}${git} \$ " | |
fi | |
} | |
function pcommand { | |
if [ "$WINDOW_NAME" ]; then | |
echo -ne "\033]0;${WINDOW_NAME}\007" | |
return | |
else | |
echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007" | |
if [ "$TERM" == "screen" ]; then | |
name=`basename ${PWD}` | |
echo -ne "\ek${name}\e\\" | |
fi | |
fi | |
decorate_prompt | |
} | |
export PROMPT_COMMAND=pcommand |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Result
Example: