Unverified Commit bf888680 authored by Marc Cornellà's avatar Marc Cornellà
Browse files

refactor(cli): extract substitution awk script in `plugin disable`

parent 708bbe12
...@@ -226,13 +226,17 @@ function _omz::plugin::disable { ...@@ -226,13 +226,17 @@ function _omz::plugin::disable {
return 1 return 1
fi 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 # Disable plugins awk script
local awk_script=" local awk_script="
# if plugins=() is in oneline form, substitute disabled plugins and go to next line # if plugins=() is in oneline form, substitute disabled plugins and go to next line
/^\s*plugins=\([^#]+\).*\$/ { /^\s*plugins=\([^#]+\).*\$/ {
gsub(/\s+(${(j:|:)dis_plugins})/, \"\") # with spaces before $awk_subst_plugins
gsub(/(${(j:|:)dis_plugins})\s+/, \"\") # with spaces after
gsub(/\((${(j:|:)dis_plugins})\)/, \"\") # without spaces (only plugin)
print \$0 print \$0
next next
} }
...@@ -240,29 +244,22 @@ function _omz::plugin::disable { ...@@ -240,29 +244,22 @@ function _omz::plugin::disable {
# if plugins=() is in multiline form, enable multi flag and disable plugins if they're there # if plugins=() is in multiline form, enable multi flag and disable plugins if they're there
/^\s*plugins=\(/ { /^\s*plugins=\(/ {
multi=1 multi=1
gsub(/\s+(${(j:|:)dis_plugins})/, \"\") $awk_subst_plugins
gsub(/(${(j:|:)dis_plugins})\s+/, \"\")
gsub(/\((${(j:|:)dis_plugins})\)/, \"\")
print \$0 print \$0
next next
} }
# if multi flag is enabled and we find a valid closing parenthesis, # if multi flag is enabled and we find a valid closing parenthesis, remove plugins and disable multi flag
# add new plugins and disable multi flag
multi == 1 && /^[^#]*\)/ { multi == 1 && /^[^#]*\)/ {
multi=0 multi=0
gsub(/\s+(${(j:|:)dis_plugins})/, \"\") $awk_subst_plugins
gsub(/(${(j:|:)dis_plugins})\s+/, \"\")
gsub(/\((${(j:|:)dis_plugins})\)/, \"\")
print \$0 print \$0
next next
} }
multi == 1 { multi == 1 && length(\$0) > 0 {
gsub(/\s+(${(j:|:)dis_plugins})/, \"\") $awk_subst_plugins
gsub(/(${(j:|:)dis_plugins})\s+/, \"\") if (length(\$0) > 0) print \$0
gsub(/\((${(j:|:)dis_plugins})\)/, \"\")
print \$0
next next
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment