mirror of https://github.com/bjeanes/dotfiles.git
52 lines
1.2 KiB
Fish
52 lines
1.2 KiB
Fish
|
# Port of the Bash version bundled with git
|
||
|
# Bodaniel Jeanes
|
||
|
function __git_ps1
|
||
|
set -l g (git rev-parse --git-dir ^/dev/null)
|
||
|
if [ -n "$g" ]
|
||
|
set -l r ""
|
||
|
set -l b ""
|
||
|
|
||
|
if [ -d "$g/../.dotest" ]
|
||
|
if [ -f "$g/../.dotest/rebasing" ]
|
||
|
set r "|REBASE"
|
||
|
elseif [ -f "$g/../.dotest/applying" ]
|
||
|
set r "|AM"
|
||
|
else
|
||
|
set r "|AM/REBASE"
|
||
|
end
|
||
|
|
||
|
set b (git symbolic-ref HEAD ^/dev/null)
|
||
|
elseif [ -f "$g/.dotest-merge/interactive" ]
|
||
|
set r "|REBASE-i"
|
||
|
set b (cat "$g/.dotest-merge/head-name")
|
||
|
elseif [ -d "$g/.dotest-merge" ]
|
||
|
set r "|REBASE-m"
|
||
|
set b (cat "$g/.dotest-merge/head-name")
|
||
|
elseif [ -f "$g/MERGE_HEAD" ]
|
||
|
set r "|MERGING"
|
||
|
set b (git symbolic-ref HEAD ^/dev/null)
|
||
|
else
|
||
|
if [ -f "$g/BISECT_LOG" ]
|
||
|
set r "|BISECTING"
|
||
|
end
|
||
|
|
||
|
set b (git symbolic-ref HEAD ^/dev/null)
|
||
|
if [ -z $b ]
|
||
|
set b (git describe --exact-match HEAD ^/dev/null)
|
||
|
if [ -z $b ]
|
||
|
set b (cut -c1-7 "$g/HEAD")
|
||
|
set b "$b..."
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
if not test $argv
|
||
|
set argv " (%s)"
|
||
|
end
|
||
|
|
||
|
set b (echo $b | sed -e 's|^refs/heads/||')
|
||
|
|
||
|
printf $argv "$b$r" ^/dev/null
|
||
|
end
|
||
|
end
|