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

This commit is contained in:
Marc Cornellà 2021-08-17 12:38:48 +02:00
parent 708bbe12c5
commit bf888680ea
No known key found for this signature in database
GPG Key ID: 0314585E776A9C1B

View File

@ -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
}