Module: Homebrew::Bundle::Remover Private
- Extended by:
- Utils::Output::Mixin
- 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
Methods included from Utils::Output::Mixin
odebug, odeprecated, odie, odisabled, ofail, oh1, oh1_title, ohai, ohai_title, onoe, opoo, opoo_outside_github_actions, pretty_duration, pretty_installed, pretty_outdated, pretty_uninstalled
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.
44 45 46 47 48 49 |
# File 'bundle/remover.rb', line 44 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.
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 39 40 41 42 |
# File 'bundle/remover.rb', line 11 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 |