mirror of
https://github.com/oh-my-fish/oh-my-fish
synced 2024-11-03 15:40:32 +00:00
Add a gitstatus theme.
This commit is contained in:
parent
ce776a9ca5
commit
dca3d50998
14
themes/gitstatus/README.md
Normal file
14
themes/gitstatus/README.md
Normal 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.
|
35
themes/gitstatus/fish_prompt.fish
Normal file
35
themes/gitstatus/fish_prompt.fish
Normal 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
|
Loading…
Reference in New Issue
Block a user