diff options
author | Marc Cornellà <hello@mcornella.com> | 2022-01-03 14:00:54 +0100 |
---|---|---|
committer | Marc Cornellà <hello@mcornella.com> | 2022-01-03 14:00:54 +0100 |
commit | a280726d934878a31f6dae35d8677a53551bbcf5 (patch) | |
tree | bb7986a79b10c8b4428e77855cb23fe581df2da3 /plugins/fossil | |
parent | 1c53ef05833b965779865e457bb8355f0700bfab (diff) | |
download | zsh-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')
-rw-r--r-- | plugins/fossil/fossil.plugin.zsh | 32 |
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 () { |