diff options
author | Marc Cornellà <hello@mcornella.com> | 2021-08-17 12:38:48 +0200 |
---|---|---|
committer | Marc Cornellà <hello@mcornella.com> | 2021-08-17 12:44:53 +0200 |
commit | bf888680ea5b7161cf1d06011df33bfbeda8b255 (patch) | |
tree | 5da91d971fe569cf74d33e8cfdc13ea550700550 /lib | |
parent | 708bbe12c5817e380c83d0c49bf684b0fc5d0024 (diff) | |
download | zsh-bf888680ea5b7161cf1d06011df33bfbeda8b255.tar.gz zsh-bf888680ea5b7161cf1d06011df33bfbeda8b255.tar.bz2 zsh-bf888680ea5b7161cf1d06011df33bfbeda8b255.zip |
refactor(cli): extract substitution awk script in `plugin disable`
Diffstat (limited to 'lib')
-rw-r--r-- | lib/cli.zsh | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/lib/cli.zsh b/lib/cli.zsh index e490149e0..a10b0e147 100644 --- a/lib/cli.zsh +++ b/lib/cli.zsh @@ -226,13 +226,17 @@ function _omz::plugin::disable { return 1 fi + # Remove plugins substitution awk script + local awk_subst_plugins="\ + gsub(/\s+(${(j:|:)dis_plugins})/, \"\") # with spaces before + gsub(/(${(j:|:)dis_plugins})\s+/, \"\") # with spaces after + gsub(/\((${(j:|:)dis_plugins})\)/, \"\") # without spaces (only plugin) +" # Disable plugins awk script local awk_script=" # if plugins=() is in oneline form, substitute disabled plugins and go to next line /^\s*plugins=\([^#]+\).*\$/ { - gsub(/\s+(${(j:|:)dis_plugins})/, \"\") # with spaces before - gsub(/(${(j:|:)dis_plugins})\s+/, \"\") # with spaces after - gsub(/\((${(j:|:)dis_plugins})\)/, \"\") # without spaces (only plugin) + $awk_subst_plugins print \$0 next } @@ -240,29 +244,22 @@ function _omz::plugin::disable { # if plugins=() is in multiline form, enable multi flag and disable plugins if they're there /^\s*plugins=\(/ { multi=1 - gsub(/\s+(${(j:|:)dis_plugins})/, \"\") - gsub(/(${(j:|:)dis_plugins})\s+/, \"\") - gsub(/\((${(j:|:)dis_plugins})\)/, \"\") + $awk_subst_plugins print \$0 next } -# if multi flag is enabled and we find a valid closing parenthesis, -# add new plugins and disable multi flag +# if multi flag is enabled and we find a valid closing parenthesis, remove plugins and disable multi flag multi == 1 && /^[^#]*\)/ { multi=0 - gsub(/\s+(${(j:|:)dis_plugins})/, \"\") - gsub(/(${(j:|:)dis_plugins})\s+/, \"\") - gsub(/\((${(j:|:)dis_plugins})\)/, \"\") + $awk_subst_plugins print \$0 next } -multi == 1 { - gsub(/\s+(${(j:|:)dis_plugins})/, \"\") - gsub(/(${(j:|:)dis_plugins})\s+/, \"\") - gsub(/\((${(j:|:)dis_plugins})\)/, \"\") - print \$0 +multi == 1 && length(\$0) > 0 { + $awk_subst_plugins + if (length(\$0) > 0) print \$0 next } |