123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- # name: bash-git-prompt
- # author: Mariusz Smykuła <mariuszs@gmail.com>
- function fish_prompt
- if not set -q __GIT_PROMPT_DIR
- set __GIT_PROMPT_DIR ~/.bash-git-prompt
- end
- # Colors
- # Reset
- set ResetColor (set_color normal) # Text Reset
- # Regular Colors
- set Red (set_color red) # Red
- set Yellow (set_color yellow); # Yellow
- set Blue (set_color blue) # Blue
- set WHITE (set_color white)
- # Bold
- set BGreen (set_color -o green) # Green
- # High Intensty
- set IBlack (set_color -o black) # Black
- # Bold High Intensty
- set Magenta (set_color -o purple) # Purple
- # Default values for the appearance of the prompt. Configure at will.
- set GIT_PROMPT_PREFIX "["
- set GIT_PROMPT_SUFFIX "]"
- set GIT_PROMPT_SEPARATOR "|"
- set GIT_PROMPT_BRANCH "$Magenta"
- set GIT_PROMPT_STAGED "$Red● "
- set GIT_PROMPT_CONFLICTS "$Red✖ "
- set GIT_PROMPT_CHANGED "$Blue✚ "
- set GIT_PROMPT_REMOTE " "
- set GIT_PROMPT_UNTRACKED "…"
- set GIT_PROMPT_STASHED "⚑ "
- set GIT_PROMPT_CLEAN "$BGreen✔"
- # Various variables you might want for your PS1 prompt instead
- set Time (date +%R)
- set PathShort (pwd|sed "s=$HOME=~=")
- set PROMPT_START "$Yellow$PathShort$ResetColor"
- set PROMPT_END " \n$WHITE$Time$ResetColor \$ "
- set -e __CURRENT_GIT_STATUS
- set gitstatus "$__GIT_PROMPT_DIR/gitstatus.py"
- set _GIT_STATUS (python $gitstatus)
- set __CURRENT_GIT_STATUS $_GIT_STATUS
- set __CURRENT_GIT_STATUS_PARAM_COUNT (count $__CURRENT_GIT_STATUS)
- if not test "0" -eq $__CURRENT_GIT_STATUS_PARAM_COUNT
- set GIT_BRANCH $__CURRENT_GIT_STATUS[1]
- set GIT_REMOTE "$__CURRENT_GIT_STATUS[2]"
- if contains "." "$GIT_REMOTE"
- set -e GIT_REMOTE
- end
- set GIT_STAGED $__CURRENT_GIT_STATUS[3]
- set GIT_CONFLICTS $__CURRENT_GIT_STATUS[4]
- set GIT_CHANGED $__CURRENT_GIT_STATUS[5]
- set GIT_UNTRACKED $__CURRENT_GIT_STATUS[6]
- set GIT_STASHED $__CURRENT_GIT_STATUS[7]
- set GIT_CLEAN $__CURRENT_GIT_STATUS[8]
- end
- if test -n "$__CURRENT_GIT_STATUS"
- set STATUS " $GIT_PROMPT_PREFIX$GIT_PROMPT_BRANCH$GIT_BRANCH$ResetColor"
- if set -q GIT_REMOTE
- set STATUS "$STATUS$GIT_PROMPT_REMOTE$GIT_REMOTE$ResetColor"
- end
- set STATUS "$STATUS$GIT_PROMPT_SEPARATOR"
- if [ $GIT_STAGED != "0" ]
- set STATUS "$STATUS$GIT_PROMPT_STAGED$GIT_STAGED$ResetColor"
- end
- if [ $GIT_CONFLICTS != "0" ]
- set STATUS "$STATUS$GIT_PROMPT_CONFLICTS$GIT_CONFLICTS$ResetColor"
- end
- if [ $GIT_CHANGED != "0" ]
- set STATUS "$STATUS$GIT_PROMPT_CHANGED$GIT_CHANGED$ResetColor"
- end
- if [ "$GIT_UNTRACKED" != "0" ]
- set STATUS "$STATUS$GIT_PROMPT_UNTRACKED$GIT_UNTRACKED$ResetColor"
- end
- if [ "$GIT_STASHED" != "0" ]
- set STATUS "$STATUS$GIT_PROMPT_STASHED$GIT_STASHED$ResetColor"
- end
- if [ "$GIT_CLEAN" = "1" ]
- set STATUS "$STATUS$GIT_PROMPT_CLEAN"
- end
- set STATUS "$STATUS$ResetColor$GIT_PROMPT_SUFFIX"
- set PS1 "$PROMPT_START$STATUS$PROMPT_END"
- else
- set PS1 "$PROMPT_START$PROMPT_END"
- end
- echo -e $PS1
- end
|