summaryrefslogtreecommitdiff
path: root/plugins/fossil/fossil.plugin.zsh
diff options
context:
space:
mode:
authorMarc Cornellà <hello@mcornella.com>2022-01-03 14:00:54 +0100
committerMarc Cornellà <hello@mcornella.com>2022-01-03 14:00:54 +0100
commita280726d934878a31f6dae35d8677a53551bbcf5 (patch)
treebb7986a79b10c8b4428e77855cb23fe581df2da3 /plugins/fossil/fossil.plugin.zsh
parent1c53ef05833b965779865e457bb8355f0700bfab (diff)
downloadzsh-a280726d934878a31f6dae35d8677a53551bbcf5.tar.gz
zsh-a280726d934878a31f6dae35d8677a53551bbcf5.tar.bz2
zsh-a280726d934878a31f6dae35d8677a53551bbcf5.zip
fix(fossil): refactor `fossil_prompt_info` and quote % in branch
Diffstat (limited to 'plugins/fossil/fossil.plugin.zsh')
-rw-r--r--plugins/fossil/fossil.plugin.zsh32
1 files changed, 17 insertions, 15 deletions
diff --git a/plugins/fossil/fossil.plugin.zsh b/plugins/fossil/fossil.plugin.zsh
index dfad73d36..a2123f415 100644
--- a/plugins/fossil/fossil.plugin.zsh
+++ b/plugins/fossil/fossil.plugin.zsh
@@ -13,23 +13,25 @@ ZSH_THEME_FOSSIL_PROMPT_DIRTY=" %{$fg_bold[red]%}✖"
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
+ local info=$(fossil branch 2>&1)
+
+ # if we're not in a fossil repo, don't show anything
+ ! command grep -q "use --repo" <<< "$info" || return
- echo "$ZSH_THEME_FOSSIL_PROMPT_PREFIX" \
- "$_BRANCH" \
- "$ZSH_THEME_FOSSIL_PROMPT_SUFFIX" \
- "$_EDITED_SYM"\
- "%{$reset_color%}"
+ local branch=$(echo $info | grep "* " | sed 's/* //g')
+ local changes=$(fossil changes)
+ local dirty="$ZSH_THEME_FOSSIL_PROMPT_CLEAN"
+
+ if [[ -n "$changes" ]]; then
+ dirty="$ZSH_THEME_FOSSIL_PROMPT_DIRTY"
fi
+
+ printf '%s %s %s %s %s' \
+ "$ZSH_THEME_FOSSIL_PROMPT_PREFIX" \
+ "${branch:gs/%/%%}" \
+ "$ZSH_THEME_FOSSIL_PROMPT_SUFFIX" \
+ "$dirty" \
+ "%{$reset_color%}"
}
function _fossil_prompt () {