Add a gitstatus theme.

This commit is contained in:
Lin Jen-Shin 2013-10-28 00:33:46 +08:00
parent ce776a9ca5
commit dca3d50998
2 changed files with 49 additions and 0 deletions

View File

@ -0,0 +1,14 @@
## GitStatus
![GitStatus](https://github.com/godfat/fish_prompt-gitstatus/raw/master/gitstatus.png)
#### Characteristics
* Displays host information in the command prompt when connected via ssh.
* Displays git information in the command prompt when inside a git repository.
- Shows current branch name.
- Shows * if working copy is dirty.
- Shows # if everything is staged.
- Shows no indicators if the working copy is clean.

View File

@ -0,0 +1,35 @@
# 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