mirror of
https://github.com/jimeh/git-aware-prompt.git
synced 2026-02-19 05:36:38 +00:00
Changed find_git_branch to use rev-parse and find_git_dirty to use diff-files for speed (I think). Also removed preceding space in front of branch, and changed function syntax to to what the Git shell scripts use.
This commit is contained in:
34
prompt.sh
34
prompt.sh
@@ -1,29 +1,39 @@
|
||||
function find_git_branch {
|
||||
local dir=. head branch
|
||||
find_git_branch() {
|
||||
local branch
|
||||
# Based on: http://stackoverflow.com/a/13003854/170413
|
||||
if branch=$(git rev-parse --abbrev-ref HEAD 2> /dev/null)
|
||||
then
|
||||
if [[ -z "$branch" ]]; then
|
||||
branch='detached'
|
||||
fi
|
||||
git_branch=" ($branch)"
|
||||
git_branch="($branch)"
|
||||
else
|
||||
git_branch=""
|
||||
fi
|
||||
}
|
||||
function find_git_dirty {
|
||||
st=$(git status 2>/dev/null | tail -n 1)
|
||||
if [[ $st == "" ]]; then
|
||||
git_dirty=''
|
||||
elif [[ $st == "nothing to commit (working directory clean)" ]]; then
|
||||
git_dirty=''
|
||||
else
|
||||
git_dirty='*'
|
||||
fi
|
||||
|
||||
find_git_dirty() {
|
||||
if [[ -z "$git_branch" ]]
|
||||
then
|
||||
git_dirty=''
|
||||
else
|
||||
# Based on: http://stackoverflow.com/a/2659808/170413
|
||||
if git diff-files --quiet
|
||||
then
|
||||
git_dirty=''
|
||||
else
|
||||
git_dirty='*'
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
PROMPT_COMMAND="find_git_branch; find_git_dirty; $PROMPT_COMMAND"
|
||||
|
||||
# Default Git enabled prompt with dirty state
|
||||
# export PS1="\u@\h \w\[$txtcyn\]\$git_branch\[$txtylw\]\$git_dirty\[$txtrst\]\$ "
|
||||
|
||||
# Another variant:
|
||||
# export PS1="\[$bldgrn\]\u@\h\[$txtrst\] \w\[$bldylw\]\$git_branch\[$txtcyn\]\$git_dirty\[$txtrst\]\$ "
|
||||
|
||||
# Default Git enabled root prompt (for use with "sudo -s")
|
||||
# export SUDO_PS1="\[$bakred\]\u@\h\[$txtrst\] \w\$ "
|
||||
|
||||
Reference in New Issue
Block a user