30:3327ef700923
Anton Shestakov <engored@ya.ru>, 2014-08-22
Replace hg-prompt-dependent mercurial prompt with hg sum, bash and grep.

next change 32:ec26c70bf440
previous change 28:dda34692ae7d

.bash_prompt

Other formats: Feeds:
Inserted Replaced Deleted
29:0fcd48b30d83 30:3327ef700923
[[ "$TEST_DIR" == '/' ]] && break [[ "$TEST_DIR" == '/' ]] && break
TEST_DIR=$(dirname "$TEST_DIR") TEST_DIR=$(dirname "$TEST_DIR")
done done
if [[ "$HG_TRACKED" ]] ; then if [[ "$HG_TRACKED" ]] ; then
local HG_INFO=" $(hg prompt $PROMPT_TEMPLATE)" local SUM=$(LC_ALL=C hg sum)
local PARENTS=($(echo "$SUM" | grep -Po '(?<=parent: ).*(?=:)'))
local BRANCH=$(echo "$SUM" | grep -Po '(?<=branch: ).*$')
local COMMIT=$(echo "$SUM" | grep -Po '(?<=commit: ).*$')
local UPDATE=$(echo "$SUM" | grep -Po '(?<=update: ).*$')
local REV=${PARENTS[0]}
local MERGEREV=${PARENTS[1]}
BRANCH=${BRANCH/default/}
[ -z "$MERGEREV" ] || MERGEREV="+$MERGEREV"
case "$COMMIT" in
*'(clean)'*)
COMMIT=''
;;
*added*|*modified*|*deleted*)
COMMIT='!'
;;
esac
case "$UPDATE" in
*'(update)'*)
UPDATE='^'
;;
*'(merge)'*)
UPDATE=''
;;
*'(current)'*)
UPDATE=''
;;
esac
local HG_INFO=" ${P}${BRANCH}☿${REV}${R}${UPDATE}${G}${MERGEREV}${R}${COMMIT}${RESET}"
fi fi
if [[ "$GIT_TRACKED" ]] ; then if [[ "$GIT_TRACKED" ]] ; then
local GIT_STATUS=$(git status 2>/dev/null) local GIT_STATUS=$(git status 2>/dev/null)
local GIT_BRANCH=$(grep 'On branch' <<< "$GIT_STATUS" | cut -d' ' -f3-) local GIT_BRANCH=$(grep 'On branch' <<< "$GIT_STATUS" | cut -d' ' -f3-)