blob: dfad73d36e74258cf4dd2d6661420d667416da18 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
_FOSSIL_PROMPT=""
# Prefix at the very beginning of the prompt, before the branch name
ZSH_THEME_FOSSIL_PROMPT_PREFIX="%{$fg_bold[blue]%}fossil:(%{$fg_bold[red]%}"
# At the very end of the prompt
ZSH_THEME_FOSSIL_PROMPT_SUFFIX="%{$fg_bold[blue]%})"
# Text to display if the branch is dirty
ZSH_THEME_FOSSIL_PROMPT_DIRTY=" %{$fg_bold[red]%}✖"
# Text to display if the branch is clean
ZSH_THEME_FOSSIL_PROMPT_CLEAN=" %{$fg_bold[green]%}✔"
function fossil_prompt_info() {
local _OUTPUT=`fossil branch 2>&1`
local _STATUS=`echo $_OUTPUT | grep "use --repo"`
if [ "$_STATUS" = "" ]; then
local _EDITED=`fossil changes`
local _EDITED_SYM="$ZSH_THEME_FOSSIL_PROMPT_CLEAN"
local _BRANCH=`echo $_OUTPUT | grep "* " | sed 's/* //g'`
if [ "$_EDITED" != "" ]; then
_EDITED_SYM="$ZSH_THEME_FOSSIL_PROMPT_DIRTY"
fi
echo "$ZSH_THEME_FOSSIL_PROMPT_PREFIX" \
"$_BRANCH" \
"$ZSH_THEME_FOSSIL_PROMPT_SUFFIX" \
"$_EDITED_SYM"\
"%{$reset_color%}"
fi
}
function _fossil_prompt () {
local current=`echo $PROMPT $RPROMPT | grep fossil`
if [ "$_FOSSIL_PROMPT" = "" -o "$current" = "" ]; then
local _prompt=${PROMPT}
local _rprompt=${RPROMPT}
local is_prompt=`echo $PROMPT | grep git`
if [ "$is_prompt" = "" ]; then
RPROMPT="$_rprompt"'$(fossil_prompt_info)'
else
PROMPT="$_prompt"'$(fossil_prompt_info) '
fi
_FOSSIL_PROMPT="1"
fi
}
autoload -U add-zsh-hook
add-zsh-hook precmd _fossil_prompt
|