mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2024-05-11 05:55:17 +00:00 
			
		
		
		
	refactor(cli): extract substitution awk script in plugin disable
				
					
				
			This commit is contained in:
		
							
								
								
									
										29
									
								
								lib/cli.zsh
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								lib/cli.zsh
									
									
									
									
									
								
							@@ -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 {
 | 
				
			|||||||
# 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
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user