Download:
child 8:86f2ec90bb93
parent 6:b9fa9529a622
7:d3613e95e03f
Anton Shestakov <engored@ya.ru>, Tue, 29 Nov 2011 17:33:33 +0800
Git info. Git and Mercurial symbols (credit goes to Steve Losh and his extravagant zsh prompt).

1 файлов изменено, 22 вставок(+), 5 удалений(-) [+]
.bash_prompt file | annotate | diff | comparison | revisions
--- a/.bash_prompt Mon Nov 21 15:31:47 2011 +0800
+++ b/.bash_prompt Tue Nov 29 17:33:33 2011 +0800
@@ -12,14 +12,15 @@
local P="\[\e[1;35m\]"
local C="\[\e[1;36m\]"
- local PROMPT_TEMPLATE="${P}{branch|quiet}@{rev}{$R{update}}{$G+{rev|merge}}$R{status|modified}${RESET}"
+ local PROMPT_TEMPLATE="${P}{branch|quiet}☿{rev}{$R{update}}{$G+{rev|merge}}$R{status|modified}${RESET}"
local TIME="${G}\t${RESET}"
if [[ ${EUID} == 0 ]] ; then
local PROMPT_COLOR="$R"
- # getting hg info is disabled for root
+ # getting hg and git info is disabled for root
local HG_INFO=" ${P}-${RESET}"
+ local GIT_INFO=" ${G}-${RESET}"
else
local PROMPT_COLOR="$G"
@@ -27,14 +28,30 @@
local TEST_DIR="$PWD"
while true ; do
- [[ -d "$TEST_DIR/.hg" ]] && local TRACKED=1 && break
+ [[ -d "$TEST_DIR/.hg" ]] && local HG_TRACKED=1 && break
+ [[ -d "$TEST_DIR/.git" ]] && local GIT_TRACKED=1 && break
[[ "$TEST_DIR" == '/' ]] && break
TEST_DIR=$(dirname "$TEST_DIR")
done
- if [[ "$TRACKED" ]] ; then
+ if [[ "$HG_TRACKED" ]] ; then
local HG_INFO=" $(hg prompt $PROMPT_TEMPLATE)"
fi
+ if [[ "$GIT_TRACKED" ]] ; then
+ local GIT_STATUS=$(git status 2>/dev/null)
+
+ if [[ $(echo ${GIT_STATUS} | grep "# Your branch is behind") ]]; then
+ local GIT_UPDATE="$R^"
+ fi
+ if [[ $(echo ${GIT_STATUS} | grep "# Changes to be committed:") ]]; then
+ local GIT_STAGED="$R!"
+ fi
+ if [[ $(echo ${GIT_STATUS} | grep "# Changes not staged for commit:") ]]; then
+ local GIT_UNSTAGED="$P?"
+ fi
+
+ local GIT_INFO=" ${G}±${GIT_STAGED}${GIT_UNSTAGED}${GIT_UPDATE}${RESET}"
+ fi
fi
if [[ "$VIRTUAL_ENV" ]] ; then
@@ -47,7 +64,7 @@
PS1="\
${BOLD}[${TIME} \u@\h \
-${RETCODE}\W${VENV}${HG_INFO}${BOLD}]\
+${RETCODE}\W${VENV}${HG_INFO}${GIT_INFO}${BOLD}]\
${PROMPT_COLOR}\\\$${RESET} "
}