summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMarc Cornellà <hello@mcornella.com>2021-08-17 12:38:48 +0200
committerMarc Cornellà <hello@mcornella.com>2021-08-17 12:44:53 +0200
commitbf888680ea5b7161cf1d06011df33bfbeda8b255 (patch)
tree5da91d971fe569cf74d33e8cfdc13ea550700550 /lib
parent708bbe12c5817e380c83d0c49bf684b0fc5d0024 (diff)
downloadzsh-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.zsh29
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
}