a280726d934878a31f6dae35d8677a53551bbcf5
- Author
- Marc Cornellà <hello@mcornella.com>
- Committer
- Marc Cornellà <hello@mcornella.com>
- Date
Message
fix(fossil): refactor `fossil_prompt_info` and quote % in branch
Diff
1diff --git a/plugins/fossil/fossil.plugin.zsh b/plugins/fossil/fossil.plugin.zsh
2index dfad73d36e74258cf4dd2d6661420d667416da18..a2123f415644c8eb51d641729213998defab2147 100644
3--- a/plugins/fossil/fossil.plugin.zsh
4+++ b/plugins/fossil/fossil.plugin.zsh
5@@ -13,23 +13,25 @@ ZSH_THEME_FOSSIL_PROMPT_DIRTY=" %{$fg_bold[red]%}✖"
6 ZSH_THEME_FOSSIL_PROMPT_CLEAN=" %{$fg_bold[green]%}✔"
7
8 function fossil_prompt_info() {
9- local _OUTPUT=`fossil branch 2>&1`
10- local _STATUS=`echo $_OUTPUT | grep "use --repo"`
11- if [ "$_STATUS" = "" ]; then
12- local _EDITED=`fossil changes`
13- local _EDITED_SYM="$ZSH_THEME_FOSSIL_PROMPT_CLEAN"
14- local _BRANCH=`echo $_OUTPUT | grep "* " | sed 's/* //g'`
15-
16- if [ "$_EDITED" != "" ]; then
17- _EDITED_SYM="$ZSH_THEME_FOSSIL_PROMPT_DIRTY"
18- fi
19+ local info=$(fossil branch 2>&1)
20+
21+ # if we're not in a fossil repo, don't show anything
22+ ! command grep -q "use --repo" <<< "$info" || return
23
24- echo "$ZSH_THEME_FOSSIL_PROMPT_PREFIX" \
25- "$_BRANCH" \
26- "$ZSH_THEME_FOSSIL_PROMPT_SUFFIX" \
27- "$_EDITED_SYM"\
28- "%{$reset_color%}"
29+ local branch=$(echo $info | grep "* " | sed 's/* //g')
30+ local changes=$(fossil changes)
31+ local dirty="$ZSH_THEME_FOSSIL_PROMPT_CLEAN"
32+
33+ if [[ -n "$changes" ]]; then
34+ dirty="$ZSH_THEME_FOSSIL_PROMPT_DIRTY"
35 fi
36+
37+ printf '%s %s %s %s %s' \
38+ "$ZSH_THEME_FOSSIL_PROMPT_PREFIX" \
39+ "${branch:gs/%/%%}" \
40+ "$ZSH_THEME_FOSSIL_PROMPT_SUFFIX" \
41+ "$dirty" \
42+ "%{$reset_color%}"
43 }
44
45 function _fossil_prompt () {