Module: Homebrew::Bundle::Remover Private
- Defined in:
- bundle/remover.rb
This module is part of a private API. This module may only be used in the Homebrew/brew repository. Third parties should avoid using this module if possible, as it may be removed or changed without warning.
Class Method Summary collapse
- .possible_names(formula_name, raise_error: true) ⇒ Object private
- .remove(*args, type:, global:, file:) ⇒ Object private
Class Method Details
.possible_names(formula_name, raise_error: true) ⇒ Object
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
40 41 42 43 44 45 |
# File 'bundle/remover.rb', line 40 def self.possible_names(formula_name, raise_error: true) formula = Formulary.factory(formula_name) [formula_name, formula.name, formula.full_name, *formula.aliases, *formula.oldnames].compact.uniq rescue FormulaUnavailableError raise if raise_error end |
.remove(*args, type:, global:, file:) ⇒ Object
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'bundle/remover.rb', line 7 def self.remove(*args, type:, global:, file:) require "bundle/brewfile" require "bundle/dumper" brewfile = Brewfile.read(global:, file:) content = brewfile.input entry_type = type.to_s if type != :none escaped_args = args.flat_map do |arg| names = if type == :brew possible_names(arg) else [arg] end names.uniq.map { |a| Regexp.escape(a) } end new_content = content.split("\n") .grep_v(/#{entry_type}(\s+|\(\s*)"(#{escaped_args.join("|")})"/) .join("\n") << "\n" if content.chomp == new_content.chomp && type == :none && args.any? { |arg| possible_names(arg, raise_error: false).count > 1 } opoo "No matching entries found in Brewfile. Try again with `--formula` to match formula " \ "aliases and old formula names." return end path = Dumper.brewfile_path(global:, file:) Dumper.write_file path, new_content end |