mirror of
https://github.com/oh-my-fish/oh-my-fish
synced 2024-11-09 13:10:40 +00:00
36 lines
902 B
Fish
36 lines
902 B
Fish
|
# name: GitStatus
|
||
|
# Find latest version from: https://github.com/godfat/fish_prompt-gitstatus
|
||
|
|
||
|
function _git_branch_name
|
||
|
echo (command git symbolic-ref HEAD ^/dev/null | sed -e 's|^refs/heads/||')
|
||
|
end
|
||
|
|
||
|
function _git_status_symbol
|
||
|
set -l git_status (git status --porcelain ^/dev/null)
|
||
|
if test -n "$git_status"
|
||
|
# Is there anyway to preserve newlines so we can reuse $git_status?
|
||
|
if git status --porcelain ^/dev/null | grep '^.[^ ]' >/dev/null
|
||
|
echo '*' # dirty
|
||
|
else
|
||
|
echo '#' # all staged
|
||
|
end
|
||
|
else
|
||
|
echo '' # clean
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function _remote_hostname
|
||
|
if test $SSH_CONNECTION
|
||
|
echo (whoami)@(hostname)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
function fish_prompt
|
||
|
set -l cyan (set_color cyan)
|
||
|
set -l normal (set_color normal)
|
||
|
set -l cwd (set_color $fish_color_cwd)(prompt_pwd)
|
||
|
|
||
|
echo -n (_remote_hostname) \
|
||
|
$cwd $cyan(_git_status_symbol)(_git_branch_name)$normal'> '
|
||
|
end
|