mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 07:59:02 +08:00
bundle: Rename "brews" to "formulae" for consistency
- Homebrew Bundle referred to formulae as "brews". But it referred to casks as "casks" and taps as "taps". - Let's use the same terminology everywhere. - (I know that `brew "hello"` is the formula syntax in the Brewfile, so I'm not changing that (though would be up for it, in a backwards compatible manner), just making the code more consistent.)
This commit is contained in:
parent
94606f343a
commit
990c1efc16
@ -304,7 +304,7 @@ Sorbet/StrictSigil:
|
||||
- "Homebrew/utils/ruby_check_version_script.rb" # A standalone script.
|
||||
- "Homebrew/{standalone,startup}/*.rb" # These are loaded before sorbet-runtime
|
||||
- "Homebrew/test/**/*.rb"
|
||||
- "Homebrew/bundle/{brew_dumper,checker,commands/exec}.rb" # These aren't typed: true yet.
|
||||
- "Homebrew/bundle/{formula_dumper,checker,commands/exec}.rb" # These aren't typed: true yet.
|
||||
|
||||
Sorbet/TrueSigil:
|
||||
Enabled: true
|
||||
|
@ -1,7 +1,7 @@
|
||||
# typed: true # rubocop:todo Sorbet/StrictSigil
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "bundle/brew_installer"
|
||||
require "bundle/formula_installer"
|
||||
|
||||
module Homebrew
|
||||
module Bundle
|
||||
@ -11,7 +11,7 @@ module Homebrew
|
||||
PACKAGE_TYPE_NAME = "Formula"
|
||||
|
||||
def installed_and_up_to_date?(formula, no_upgrade: false)
|
||||
Homebrew::Bundle::BrewInstaller.formula_installed_and_up_to_date?(formula, no_upgrade:)
|
||||
Homebrew::Bundle::FormulaInstaller.formula_installed_and_up_to_date?(formula, no_upgrade:)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -24,8 +24,8 @@ module Homebrew
|
||||
end
|
||||
|
||||
def entry_to_formula(entry)
|
||||
require "bundle/brew_installer"
|
||||
Homebrew::Bundle::BrewInstaller.new(entry.name, entry.options)
|
||||
require "bundle/formula_installer"
|
||||
Homebrew::Bundle::FormulaInstaller.new(entry.name, entry.options)
|
||||
end
|
||||
|
||||
def formula_needs_to_start?(formula)
|
||||
@ -38,8 +38,8 @@ module Homebrew
|
||||
end
|
||||
|
||||
def lookup_old_name(service_name)
|
||||
require "bundle/brew_dumper"
|
||||
@old_names ||= Homebrew::Bundle::BrewDumper.formula_oldnames
|
||||
require "bundle/formula_dumper"
|
||||
@old_names ||= Homebrew::Bundle::FormulaDumper.formula_oldnames
|
||||
old_name = @old_names[service_name]
|
||||
old_name ||= @old_names[service_name.split("/").last]
|
||||
old_name
|
||||
|
@ -139,14 +139,14 @@ module Homebrew
|
||||
|
||||
def self.reset!
|
||||
require "bundle/cask_dumper"
|
||||
require "bundle/brew_dumper"
|
||||
require "bundle/formula_dumper"
|
||||
require "bundle/mac_app_store_dumper"
|
||||
require "bundle/tap_dumper"
|
||||
require "bundle/brew_services"
|
||||
|
||||
@dsl = nil
|
||||
Homebrew::Bundle::CaskDumper.reset!
|
||||
Homebrew::Bundle::BrewDumper.reset!
|
||||
Homebrew::Bundle::FormulaDumper.reset!
|
||||
Homebrew::Bundle::MacAppStoreDumper.reset!
|
||||
Homebrew::Bundle::TapDumper.reset!
|
||||
Homebrew::Bundle::BrewServices.reset!
|
||||
|
@ -10,7 +10,7 @@ module Homebrew
|
||||
module Cleanup
|
||||
def self.reset!
|
||||
require "bundle/cask_dumper"
|
||||
require "bundle/brew_dumper"
|
||||
require "bundle/formula_dumper"
|
||||
require "bundle/tap_dumper"
|
||||
require "bundle/vscode_extension_dumper"
|
||||
require "bundle/brew_services"
|
||||
@ -19,18 +19,18 @@ module Homebrew
|
||||
@kept_casks = nil
|
||||
@kept_formulae = nil
|
||||
Homebrew::Bundle::CaskDumper.reset!
|
||||
Homebrew::Bundle::BrewDumper.reset!
|
||||
Homebrew::Bundle::FormulaDumper.reset!
|
||||
Homebrew::Bundle::TapDumper.reset!
|
||||
Homebrew::Bundle::VscodeExtensionDumper.reset!
|
||||
Homebrew::Bundle::BrewServices.reset!
|
||||
end
|
||||
|
||||
def self.run(global: false, file: nil, force: false, zap: false, dsl: nil,
|
||||
brews: true, casks: true, taps: true, vscode: true)
|
||||
formulae: true, casks: true, taps: true, vscode: true)
|
||||
@dsl ||= dsl
|
||||
|
||||
casks = casks ? casks_to_uninstall(global:, file:) : []
|
||||
formulae = brews ? formulae_to_uninstall(global:, file:) : []
|
||||
formulae = formulae ? formulae_to_uninstall(global:, file:) : []
|
||||
taps = taps ? taps_to_untap(global:, file:) : []
|
||||
vscode_extensions = vscode ? vscode_extensions_to_uninstall(global:, file:) : []
|
||||
if force
|
||||
@ -101,11 +101,11 @@ module Homebrew
|
||||
def self.formulae_to_uninstall(global: false, file: nil)
|
||||
kept_formulae = self.kept_formulae(global:, file:)
|
||||
|
||||
require "bundle/brew_dumper"
|
||||
require "bundle/brew_installer"
|
||||
current_formulae = Homebrew::Bundle::BrewDumper.formulae
|
||||
require "bundle/formula_dumper"
|
||||
require "bundle/formula_installer"
|
||||
current_formulae = Homebrew::Bundle::FormulaDumper.formulae
|
||||
current_formulae.reject! do |f|
|
||||
Homebrew::Bundle::BrewInstaller.formula_in_array?(f[:full_name], kept_formulae)
|
||||
Homebrew::Bundle::FormulaInstaller.formula_in_array?(f[:full_name], kept_formulae)
|
||||
end
|
||||
|
||||
# Don't try to uninstall formulae with keepme references
|
||||
@ -119,7 +119,7 @@ module Homebrew
|
||||
|
||||
private_class_method def self.kept_formulae(global: false, file: nil)
|
||||
require "bundle/brewfile"
|
||||
require "bundle/brew_dumper"
|
||||
require "bundle/formula_dumper"
|
||||
require "bundle/cask_dumper"
|
||||
|
||||
@kept_formulae ||= begin
|
||||
@ -128,12 +128,12 @@ module Homebrew
|
||||
kept_formulae = @dsl.entries.select { |e| e.type == :brew }.map(&:name)
|
||||
kept_formulae += Homebrew::Bundle::CaskDumper.formula_dependencies(kept_casks)
|
||||
kept_formulae.map! do |f|
|
||||
Homebrew::Bundle::BrewDumper.formula_aliases[f] ||
|
||||
Homebrew::Bundle::BrewDumper.formula_oldnames[f] ||
|
||||
Homebrew::Bundle::FormulaDumper.formula_aliases[f] ||
|
||||
Homebrew::Bundle::FormulaDumper.formula_oldnames[f] ||
|
||||
f
|
||||
end
|
||||
|
||||
kept_formulae + recursive_dependencies(Homebrew::Bundle::BrewDumper.formulae, kept_formulae)
|
||||
kept_formulae + recursive_dependencies(Homebrew::Bundle::FormulaDumper.formulae, kept_formulae)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -7,9 +7,10 @@ module Homebrew
|
||||
module Bundle
|
||||
module Commands
|
||||
module Dump
|
||||
def self.run(global:, file:, describe:, force:, no_restart:, taps:, brews:, casks:, mas:, whalebrew:, vscode:)
|
||||
def self.run(global:, file:, describe:, force:, no_restart:, taps:, formulae:, casks:, mas:, whalebrew:,
|
||||
vscode:)
|
||||
Homebrew::Bundle::Dumper.dump_brewfile(
|
||||
global:, file:, describe:, force:, no_restart:, taps:, brews:, casks:, mas:, whalebrew:, vscode:,
|
||||
global:, file:, describe:, force:, no_restart:, taps:, formulae:, casks:, mas:, whalebrew:, vscode:,
|
||||
)
|
||||
end
|
||||
end
|
||||
|
@ -8,11 +8,11 @@ module Homebrew
|
||||
module Bundle
|
||||
module Commands
|
||||
module List
|
||||
def self.run(global:, file:, brews:, casks:, taps:, mas:, whalebrew:, vscode:)
|
||||
def self.run(global:, file:, formulae:, casks:, taps:, mas:, whalebrew:, vscode:)
|
||||
parsed_entries = Brewfile.read(global:, file:).entries
|
||||
Homebrew::Bundle::Lister.list(
|
||||
parsed_entries,
|
||||
brews:, casks:, taps:, mas:, whalebrew:, vscode:,
|
||||
formulae:, casks:, taps:, mas:, whalebrew:, vscode:,
|
||||
)
|
||||
end
|
||||
end
|
||||
|
@ -13,9 +13,9 @@ module Homebrew
|
||||
true
|
||||
end
|
||||
|
||||
def self.build_brewfile(describe:, no_restart:, brews:, taps:, casks:, mas:, whalebrew:, vscode:)
|
||||
def self.build_brewfile(describe:, no_restart:, formulae:, taps:, casks:, mas:, whalebrew:, vscode:)
|
||||
require "bundle/tap_dumper"
|
||||
require "bundle/brew_dumper"
|
||||
require "bundle/formula_dumper"
|
||||
require "bundle/cask_dumper"
|
||||
require "bundle/mac_app_store_dumper"
|
||||
require "bundle/whalebrew_dumper"
|
||||
@ -23,7 +23,7 @@ module Homebrew
|
||||
|
||||
content = []
|
||||
content << TapDumper.dump if taps
|
||||
content << BrewDumper.dump(describe:, no_restart:) if brews
|
||||
content << FormulaDumper.dump(describe:, no_restart:) if formulae
|
||||
content << CaskDumper.dump(describe:) if casks
|
||||
content << MacAppStoreDumper.dump if mas
|
||||
content << WhalebrewDumper.dump if whalebrew
|
||||
@ -31,11 +31,11 @@ module Homebrew
|
||||
"#{content.reject(&:empty?).join("\n")}\n"
|
||||
end
|
||||
|
||||
def self.dump_brewfile(global:, file:, describe:, force:, no_restart:, brews:, taps:, casks:, mas:, whalebrew:,
|
||||
vscode:)
|
||||
def self.dump_brewfile(global:, file:, describe:, force:, no_restart:, formulae:, taps:, casks:, mas:,
|
||||
whalebrew:, vscode:)
|
||||
path = brewfile_path(global:, file:)
|
||||
can_write_to_brewfile?(path, force:)
|
||||
content = build_brewfile(describe:, no_restart:, taps:, brews:, casks:, mas:, whalebrew:, vscode:)
|
||||
content = build_brewfile(describe:, no_restart:, taps:, formulae:, casks:, mas:, whalebrew:, vscode:)
|
||||
write_file path, content
|
||||
end
|
||||
|
||||
|
@ -7,7 +7,7 @@ require "tsort"
|
||||
module Homebrew
|
||||
module Bundle
|
||||
# TODO: refactor into multiple modules
|
||||
module BrewDumper
|
||||
module FormulaDumper
|
||||
def self.reset!
|
||||
require "bundle/brew_services"
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
module Homebrew
|
||||
module Bundle
|
||||
class BrewInstaller
|
||||
class FormulaInstaller
|
||||
def self.reset!
|
||||
@installed_formulae = nil
|
||||
@outdated_formulae = nil
|
||||
@ -179,13 +179,13 @@ module Homebrew
|
||||
return true if array.include?(formula)
|
||||
return true if array.include?(formula.split("/").last)
|
||||
|
||||
require "bundle/brew_dumper"
|
||||
old_names = Homebrew::Bundle::BrewDumper.formula_oldnames
|
||||
require "bundle/formula_dumper"
|
||||
old_names = Homebrew::Bundle::FormulaDumper.formula_oldnames
|
||||
old_name = old_names[formula]
|
||||
old_name ||= old_names[formula.split("/").last]
|
||||
return true if old_name && array.include?(old_name)
|
||||
|
||||
resolved_full_name = Homebrew::Bundle::BrewDumper.formula_aliases[formula]
|
||||
resolved_full_name = Homebrew::Bundle::FormulaDumper.formula_aliases[formula]
|
||||
return false unless resolved_full_name
|
||||
return true if array.include?(resolved_full_name)
|
||||
return true if array.include?(resolved_full_name.split("/").last)
|
||||
@ -219,14 +219,14 @@ module Homebrew
|
||||
end
|
||||
|
||||
def self.formulae
|
||||
require "bundle/brew_dumper"
|
||||
Homebrew::Bundle::BrewDumper.formulae
|
||||
require "bundle/formula_dumper"
|
||||
Homebrew::Bundle::FormulaDumper.formulae
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def installed?
|
||||
BrewInstaller.formula_installed?(@name)
|
||||
FormulaInstaller.formula_installed?(@name)
|
||||
end
|
||||
|
||||
def linked?
|
||||
@ -242,7 +242,7 @@ module Homebrew
|
||||
end
|
||||
|
||||
def upgradable?
|
||||
BrewInstaller.formula_upgradable?(@name)
|
||||
FormulaInstaller.formula_upgradable?(@name)
|
||||
end
|
||||
|
||||
def conflicts_with
|
||||
@ -250,8 +250,8 @@ module Homebrew
|
||||
conflicts_with = Set.new
|
||||
conflicts_with += @conflicts_with_arg
|
||||
|
||||
require "bundle/brew_dumper"
|
||||
if (formula = Homebrew::Bundle::BrewDumper.formulae_by_full_name(@full_name)) &&
|
||||
require "bundle/formula_dumper"
|
||||
if (formula = Homebrew::Bundle::FormulaDumper.formulae_by_full_name(@full_name)) &&
|
||||
(formula_conflicts_with = formula[:conflicts_with])
|
||||
conflicts_with += formula_conflicts_with
|
||||
end
|
||||
@ -262,7 +262,7 @@ module Homebrew
|
||||
|
||||
def resolve_conflicts!(verbose:)
|
||||
conflicts_with.each do |conflict|
|
||||
next unless BrewInstaller.formula_installed?(conflict)
|
||||
next unless FormulaInstaller.formula_installed?(conflict)
|
||||
|
||||
if verbose
|
||||
puts <<~EOS
|
||||
@ -293,7 +293,7 @@ module Homebrew
|
||||
return false
|
||||
end
|
||||
|
||||
BrewInstaller.installed_formulae << @name
|
||||
FormulaInstaller.installed_formulae << @name
|
||||
@changed = true
|
||||
true
|
||||
end
|
@ -2,7 +2,7 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "bundle/dsl"
|
||||
require "bundle/brew_installer"
|
||||
require "bundle/formula_installer"
|
||||
require "bundle/cask_installer"
|
||||
require "bundle/mac_app_store_installer"
|
||||
require "bundle/whalebrew_installer"
|
||||
@ -27,8 +27,8 @@ module Homebrew
|
||||
cls = case type
|
||||
when :brew
|
||||
options = entry.options
|
||||
verb = "Upgrading" if Homebrew::Bundle::BrewInstaller.formula_upgradable?(name)
|
||||
Homebrew::Bundle::BrewInstaller
|
||||
verb = "Upgrading" if Homebrew::Bundle::FormulaInstaller.formula_upgradable?(name)
|
||||
Homebrew::Bundle::FormulaInstaller
|
||||
when :cask
|
||||
options = entry.options
|
||||
verb = "Upgrading" if Homebrew::Bundle::CaskInstaller.cask_upgradable?(name)
|
||||
|
@ -4,14 +4,14 @@
|
||||
module Homebrew
|
||||
module Bundle
|
||||
module Lister
|
||||
def self.list(entries, brews:, casks:, taps:, mas:, whalebrew:, vscode:)
|
||||
def self.list(entries, formulae:, casks:, taps:, mas:, whalebrew:, vscode:)
|
||||
entries.each do |entry|
|
||||
puts entry.name if show?(entry.type, brews:, casks:, taps:, mas:, whalebrew:, vscode:)
|
||||
puts entry.name if show?(entry.type, formulae:, casks:, taps:, mas:, whalebrew:, vscode:)
|
||||
end
|
||||
end
|
||||
|
||||
private_class_method def self.show?(type, brews:, casks:, taps:, mas:, whalebrew:, vscode:)
|
||||
return true if brews && type == :brew
|
||||
private_class_method def self.show?(type, formulae:, casks:, taps:, mas:, whalebrew:, vscode:)
|
||||
return true if formulae && type == :brew
|
||||
return true if casks && type == :cask
|
||||
return true if taps && type == :tap
|
||||
return true if mas && type == :mas
|
||||
|
@ -9,7 +9,7 @@ module Homebrew
|
||||
class << self
|
||||
sig { params(entry: Dsl::Entry, silent: T::Boolean).returns(T::Boolean) }
|
||||
def skip?(entry, silent: false)
|
||||
require "bundle/brew_dumper"
|
||||
require "bundle/formula_dumper"
|
||||
|
||||
return true if @failed_taps&.any? do |tap|
|
||||
prefix = "#{tap}/"
|
||||
|
@ -97,7 +97,7 @@ module Homebrew
|
||||
env: [:bundle_install_cleanup, "--global"]
|
||||
switch "--all",
|
||||
description: "`list` all dependencies."
|
||||
switch "--formula", "--brews",
|
||||
switch "--formula", "--formulae",
|
||||
description: "`list`, `dump` or `cleanup` Homebrew formula dependencies."
|
||||
switch "--cask", "--casks",
|
||||
description: "`list`, `dump` or `cleanup` Homebrew cask dependencies."
|
||||
@ -162,7 +162,7 @@ module Homebrew
|
||||
zap = args.zap?
|
||||
Homebrew::Bundle.upgrade_formulae = args.upgrade_formulae
|
||||
|
||||
no_type_args = !args.brews? && !args.casks? && !args.taps? && !args.mas? && !args.whalebrew? && !args.vscode?
|
||||
no_type_args = [args.formulae?, args.casks?, args.taps?, args.mas?, args.whalebrew?, args.vscode?].none?
|
||||
|
||||
if args.install?
|
||||
if [nil, "install", "upgrade"].include?(subcommand)
|
||||
@ -209,7 +209,7 @@ module Homebrew
|
||||
describe: args.describe?,
|
||||
no_restart: args.no_restart?,
|
||||
taps: args.taps? || no_type_args,
|
||||
brews: args.brews? || no_type_args,
|
||||
formulae: args.formulae? || no_type_args,
|
||||
casks: args.casks? || no_type_args,
|
||||
mas: args.mas? || no_type_args,
|
||||
whalebrew: args.whalebrew? || no_type_args,
|
||||
@ -222,7 +222,7 @@ module Homebrew
|
||||
require "bundle/commands/cleanup"
|
||||
Homebrew::Bundle::Commands::Cleanup.run(
|
||||
global:, file:, force:, zap:,
|
||||
brews: args.brews? || no_type_args,
|
||||
formulae: args.formulae? || no_type_args,
|
||||
casks: args.casks? || no_type_args,
|
||||
taps: args.taps? || no_type_args,
|
||||
vscode: args.vscode? || no_type_args
|
||||
@ -235,7 +235,7 @@ module Homebrew
|
||||
Homebrew::Bundle::Commands::List.run(
|
||||
global:,
|
||||
file:,
|
||||
brews: args.brews? || args.all? || no_type_args,
|
||||
formulae: args.formulae? || args.all? || no_type_args,
|
||||
casks: args.casks? || args.all?,
|
||||
taps: args.taps? || args.all?,
|
||||
mas: args.mas? || args.all?,
|
||||
@ -243,9 +243,9 @@ module Homebrew
|
||||
vscode: args.vscode? || args.all?,
|
||||
)
|
||||
when "add", "remove"
|
||||
# We intentionally omit the `s` from `brews`, `casks`, and `taps` for ease of handling later.
|
||||
# We intentionally omit the s from `brews`, `casks`, and `taps` for ease of handling later.
|
||||
type_hash = {
|
||||
brew: args.brews?,
|
||||
brew: args.formulae?,
|
||||
cask: args.casks?,
|
||||
tap: args.taps?,
|
||||
mas: args.mas?,
|
||||
|
@ -415,7 +415,7 @@ module OS
|
||||
<<~EOS
|
||||
Your Cellar and TEMP directories are on different volumes.
|
||||
macOS won't move relative symlinks across volumes unless the target file already
|
||||
exists. Brews known to be affected by this are Git and Narwhal.
|
||||
exists. Formulae known to be affected by this are Git and Narwhal.
|
||||
|
||||
You should set the "HOMEBREW_TEMP" environment variable to a suitable
|
||||
directory on the same volume as your Cellar.
|
||||
|
@ -14,9 +14,6 @@ class Homebrew::Cmd::Bundle::Args < Homebrew::CLI::Args
|
||||
sig { returns(T::Boolean) }
|
||||
def all?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def brews?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def cask?; end
|
||||
|
||||
@ -44,6 +41,9 @@ class Homebrew::Cmd::Bundle::Args < Homebrew::CLI::Args
|
||||
sig { returns(T::Boolean) }
|
||||
def formula?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def formulae?; end
|
||||
|
||||
sig { returns(T::Boolean) }
|
||||
def global?; end
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
require "ostruct"
|
||||
require "bundle"
|
||||
require "bundle/brew_dumper"
|
||||
require "bundle/formula_dumper"
|
||||
require "tsort"
|
||||
require "formula"
|
||||
require "tab"
|
||||
@ -10,7 +10,7 @@ require "utils/bottles"
|
||||
|
||||
# TODO: remove OpenStruct usage
|
||||
# rubocop:todo Style/OpenStructUse
|
||||
RSpec.describe Homebrew::Bundle::BrewDumper do
|
||||
RSpec.describe Homebrew::Bundle::FormulaDumper do
|
||||
subject(:dumper) { described_class }
|
||||
|
||||
let(:foo) do
|
||||
@ -184,7 +184,7 @@ RSpec.describe Homebrew::Bundle::BrewDumper do
|
||||
|
||||
it "exits on cyclic exceptions" do
|
||||
expect(Formula).to receive(:installed).and_return([foo, bar, baz])
|
||||
expect_any_instance_of(Homebrew::Bundle::BrewDumper::Topo).to receive(:tsort).and_raise(
|
||||
expect_any_instance_of(Homebrew::Bundle::FormulaDumper::Topo).to receive(:tsort).and_raise(
|
||||
TSort::Cyclic,
|
||||
'topological sort failed: ["foo", "bar"]',
|
||||
)
|
||||
|
@ -2,11 +2,11 @@
|
||||
|
||||
require "bundle"
|
||||
require "formula"
|
||||
require "bundle/brew_installer"
|
||||
require "bundle/brew_dumper"
|
||||
require "bundle/formula_installer"
|
||||
require "bundle/formula_dumper"
|
||||
require "bundle/brew_services"
|
||||
|
||||
RSpec.describe Homebrew::Bundle::BrewInstaller do
|
||||
RSpec.describe Homebrew::Bundle::FormulaInstaller do
|
||||
let(:formula_name) { "mysql" }
|
||||
let(:options) { { args: ["with-option"] } }
|
||||
let(:installer) { described_class.new(formula_name, options) }
|
||||
@ -182,8 +182,8 @@ RSpec.describe Homebrew::Bundle::BrewInstaller do
|
||||
|
||||
context "when the conflicts_with option is provided" do
|
||||
before do
|
||||
allow(Homebrew::Bundle::BrewDumper).to receive(:formulae_by_full_name).and_call_original
|
||||
allow(Homebrew::Bundle::BrewDumper).to receive(:formulae_by_full_name).with("mysql").and_return(
|
||||
allow(Homebrew::Bundle::FormulaDumper).to receive(:formulae_by_full_name).and_call_original
|
||||
allow(Homebrew::Bundle::FormulaDumper).to receive(:formulae_by_full_name).with("mysql").and_return(
|
||||
name: "mysql",
|
||||
conflicts_with: ["mysql55"],
|
||||
)
|
||||
@ -311,7 +311,7 @@ RSpec.describe Homebrew::Bundle::BrewInstaller do
|
||||
describe ".outdated_formulae" do
|
||||
it "calls Homebrew" do
|
||||
described_class.reset!
|
||||
expect(Homebrew::Bundle::BrewDumper).to receive(:formulae).and_return(
|
||||
expect(Homebrew::Bundle::FormulaDumper).to receive(:formulae).and_return(
|
||||
[
|
||||
{ name: "a", outdated?: true },
|
||||
{ name: "b", outdated?: true },
|
||||
@ -325,7 +325,7 @@ RSpec.describe Homebrew::Bundle::BrewInstaller do
|
||||
describe ".pinned_formulae" do
|
||||
it "calls Homebrew" do
|
||||
described_class.reset!
|
||||
expect(Homebrew::Bundle::BrewDumper).to receive(:formulae).and_return(
|
||||
expect(Homebrew::Bundle::FormulaDumper).to receive(:formulae).and_return(
|
||||
[
|
||||
{ name: "a", pinned?: true },
|
||||
{ name: "b", pinned?: true },
|
||||
@ -338,11 +338,11 @@ RSpec.describe Homebrew::Bundle::BrewInstaller do
|
||||
|
||||
describe ".formula_installed_and_up_to_date?" do
|
||||
before do
|
||||
Homebrew::Bundle::BrewDumper.reset!
|
||||
Homebrew::Bundle::FormulaDumper.reset!
|
||||
described_class.reset!
|
||||
allow(described_class).to receive(:outdated_formulae).and_return(%w[bar])
|
||||
allow_any_instance_of(Formula).to receive(:outdated?).and_return(true)
|
||||
allow(Homebrew::Bundle::BrewDumper).to receive(:formulae).and_return [
|
||||
allow(Homebrew::Bundle::FormulaDumper).to receive(:formulae).and_return [
|
||||
{
|
||||
name: "foo",
|
||||
full_name: "homebrew/tap/foo",
|
||||
|
@ -6,7 +6,7 @@ require "bundle/brew_checker"
|
||||
require "bundle/cask_checker"
|
||||
require "bundle/mac_app_store_checker"
|
||||
require "bundle/vscode_extension_checker"
|
||||
require "bundle/brew_installer"
|
||||
require "bundle/formula_installer"
|
||||
require "bundle/cask_installer"
|
||||
require "bundle/mac_app_store_installer"
|
||||
require "bundle/dsl"
|
||||
@ -50,7 +50,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
|
||||
it "raises an error" do
|
||||
allow(Homebrew::Bundle).to receive(:cask_installed?).and_return(true)
|
||||
allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([])
|
||||
allow(Homebrew::Bundle::BrewInstaller).to receive(:upgradable_formulae).and_return([])
|
||||
allow(Homebrew::Bundle::FormulaInstaller).to receive(:upgradable_formulae).and_return([])
|
||||
allow_any_instance_of(Pathname).to receive(:read).and_return("cask 'abc'")
|
||||
expect { do_check }.to raise_error(SystemExit)
|
||||
end
|
||||
@ -61,7 +61,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
|
||||
|
||||
it "raises an error and outputs to stdout" do
|
||||
allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([])
|
||||
allow(Homebrew::Bundle::BrewInstaller).to receive(:upgradable_formulae).and_return([])
|
||||
allow(Homebrew::Bundle::FormulaInstaller).to receive(:upgradable_formulae).and_return([])
|
||||
allow_any_instance_of(Pathname).to receive(:read).and_return("brew 'abc'")
|
||||
expect { do_check }.to raise_error(SystemExit).and \
|
||||
output(/brew bundle can't satisfy your Brewfile's dependencies/).to_stdout
|
||||
@ -69,7 +69,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
|
||||
|
||||
it "partially outputs when HOMEBREW_BUNDLE_CHECK_ALREADY_OUTPUT_FORMULAE_ERRORS is set" do
|
||||
allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([])
|
||||
allow(Homebrew::Bundle::BrewInstaller).to receive(:upgradable_formulae).and_return([])
|
||||
allow(Homebrew::Bundle::FormulaInstaller).to receive(:upgradable_formulae).and_return([])
|
||||
allow_any_instance_of(Pathname).to receive(:read).and_return("brew 'abc'")
|
||||
ENV["HOMEBREW_BUNDLE_CHECK_ALREADY_OUTPUT_FORMULAE_ERRORS"] = "abc"
|
||||
expect { do_check }.to raise_error(SystemExit).and \
|
||||
@ -78,7 +78,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
|
||||
|
||||
it "does not raise error on skippable formula" do
|
||||
allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([])
|
||||
allow(Homebrew::Bundle::BrewInstaller).to receive(:upgradable_formulae).and_return([])
|
||||
allow(Homebrew::Bundle::FormulaInstaller).to receive(:upgradable_formulae).and_return([])
|
||||
allow(Homebrew::Bundle::Skipper).to receive(:skip?).and_return(true)
|
||||
allow_any_instance_of(Pathname).to receive(:read).and_return("brew 'abc'")
|
||||
expect { do_check }.not_to raise_error
|
||||
@ -88,7 +88,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
|
||||
context "when taps are not tapped" do
|
||||
it "raises an error" do
|
||||
allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([])
|
||||
allow(Homebrew::Bundle::BrewInstaller).to receive(:upgradable_formulae).and_return([])
|
||||
allow(Homebrew::Bundle::FormulaInstaller).to receive(:upgradable_formulae).and_return([])
|
||||
allow_any_instance_of(Pathname).to receive(:read).and_return("tap 'abc/def'")
|
||||
expect { do_check }.to raise_error(SystemExit)
|
||||
end
|
||||
@ -97,7 +97,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
|
||||
context "when apps are not installed", :needs_macos do
|
||||
it "raises an error" do
|
||||
allow(Homebrew::Bundle::MacAppStoreDumper).to receive(:app_ids).and_return([])
|
||||
allow(Homebrew::Bundle::BrewInstaller).to receive(:upgradable_formulae).and_return([])
|
||||
allow(Homebrew::Bundle::FormulaInstaller).to receive(:upgradable_formulae).and_return([])
|
||||
allow_any_instance_of(Pathname).to receive(:read).and_return("mas 'foo', id: 123")
|
||||
expect { do_check }.to raise_error(SystemExit)
|
||||
end
|
||||
@ -118,8 +118,8 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
|
||||
Homebrew::Bundle::Checker.reset!
|
||||
allow_any_instance_of(Homebrew::Bundle::Checker::MacAppStoreChecker).to \
|
||||
receive(:installed_and_up_to_date?).and_return(false)
|
||||
allow(Homebrew::Bundle::BrewInstaller).to receive_messages(installed_formulae: ["abc", "def"],
|
||||
upgradable_formulae: [])
|
||||
allow(Homebrew::Bundle::FormulaInstaller).to receive_messages(installed_formulae: ["abc", "def"],
|
||||
upgradable_formulae: [])
|
||||
allow(Homebrew::Bundle::BrewServices).to receive(:started?).with("abc").and_return(true)
|
||||
allow(Homebrew::Bundle::BrewServices).to receive(:started?).with("def").and_return(false)
|
||||
end
|
||||
@ -128,7 +128,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
|
||||
Homebrew::Bundle::Checker.reset!
|
||||
allow_any_instance_of(Pathname).to receive(:read).and_return("brew 'abc'")
|
||||
|
||||
expect(Homebrew::Bundle::BrewInstaller.installed_formulae).to include("abc")
|
||||
expect(Homebrew::Bundle::FormulaInstaller.installed_formulae).to include("abc")
|
||||
expect(Homebrew::Bundle::CaskInstaller.installed_casks).not_to include("abc")
|
||||
expect(Homebrew::Bundle::BrewServices.started?("abc")).to be(true)
|
||||
|
||||
@ -171,7 +171,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
|
||||
Homebrew::Bundle::Checker.reset!
|
||||
allow_any_instance_of(Homebrew::Bundle::Checker::MacAppStoreChecker).to \
|
||||
receive(:installed_and_up_to_date?).and_return(false)
|
||||
allow(Homebrew::Bundle::BrewInstaller).to receive(:installed_formulae).and_return(["abc", "def"])
|
||||
allow(Homebrew::Bundle::FormulaInstaller).to receive(:installed_formulae).and_return(["abc", "def"])
|
||||
end
|
||||
|
||||
it "raises an error that doesn't mention upgrade" do
|
||||
@ -262,7 +262,7 @@ RSpec.describe Homebrew::Bundle::Commands::Check, :no_api do
|
||||
context "when verbose mode is not enabled" do
|
||||
it "stops checking after the first missing formula" do
|
||||
allow(Homebrew::Bundle::CaskDumper).to receive(:casks).and_return([])
|
||||
allow(Homebrew::Bundle::BrewInstaller).to receive(:upgradable_formulae).and_return([])
|
||||
allow(Homebrew::Bundle::FormulaInstaller).to receive(:upgradable_formulae).and_return([])
|
||||
allow_any_instance_of(Pathname).to receive(:read).and_return("brew 'abc'\nbrew 'def'")
|
||||
|
||||
expect_any_instance_of(Homebrew::Bundle::Checker::BrewChecker).to \
|
||||
|
@ -70,7 +70,7 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do
|
||||
{ name: "builddependency2", full_name: "builddependency2" },
|
||||
{ name: "caskdependency", full_name: "homebrew/tap/caskdependency" },
|
||||
].map { |formula| dependencies_arrays_hash.merge(formula) }
|
||||
allow(Homebrew::Bundle::BrewDumper).to receive(:formulae).and_return(formulae_hash)
|
||||
allow(Homebrew::Bundle::FormulaDumper).to receive(:formulae).and_return(formulae_hash)
|
||||
|
||||
formulae_hash.each do |hash_formula|
|
||||
name = hash_formula[:name]
|
||||
@ -106,7 +106,7 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do
|
||||
|
||||
it "ignores formulae with .keepme references when computing which formulae to uninstall" do
|
||||
name = full_name ="c"
|
||||
allow(Homebrew::Bundle::BrewDumper).to receive(:formulae).and_return([{ name:, full_name: }])
|
||||
allow(Homebrew::Bundle::FormulaDumper).to receive(:formulae).and_return([{ name:, full_name: }])
|
||||
f = formula(name) { url "#{name}-1.0" }
|
||||
stub_formula_loader f, name
|
||||
|
||||
@ -159,7 +159,7 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do
|
||||
expect { described_class.run(force: true) }.to output(/Uninstalled 2 casks/).to_stdout
|
||||
end
|
||||
|
||||
it "does not uninstall casks if --brews is disabled" do
|
||||
it "does not uninstall casks if --formulae is disabled" do
|
||||
expect(Kernel).not_to receive(:system)
|
||||
expect(described_class).to receive(:system_output_no_stderr).and_return("")
|
||||
expect { described_class.run(force: true, casks: false) }.not_to output.to_stdout
|
||||
@ -206,7 +206,7 @@ RSpec.describe Homebrew::Bundle::Commands::Cleanup do
|
||||
it "does not uninstall formulae if --casks is disabled" do
|
||||
expect(Kernel).not_to receive(:system)
|
||||
expect(described_class).to receive(:system_output_no_stderr).and_return("")
|
||||
expect { described_class.run(force: true, brews: false) }.not_to output.to_stdout
|
||||
expect { described_class.run(force: true, formulae: false) }.not_to output.to_stdout
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -3,14 +3,14 @@
|
||||
require "bundle"
|
||||
require "bundle/commands/dump"
|
||||
require "bundle/cask_dumper"
|
||||
require "bundle/brew_dumper"
|
||||
require "bundle/formula_dumper"
|
||||
require "bundle/tap_dumper"
|
||||
require "bundle/whalebrew_dumper"
|
||||
require "bundle/vscode_extension_dumper"
|
||||
|
||||
RSpec.describe Homebrew::Bundle::Commands::Dump do
|
||||
subject(:dump) do
|
||||
described_class.run(global:, file: nil, describe: false, force:, no_restart: false, taps: true, brews: true,
|
||||
described_class.run(global:, file: nil, describe: false, force:, no_restart: false, taps: true, formulae: true,
|
||||
casks: true, mas: true, whalebrew: true, vscode: true)
|
||||
end
|
||||
|
||||
@ -19,7 +19,7 @@ RSpec.describe Homebrew::Bundle::Commands::Dump do
|
||||
|
||||
before do
|
||||
Homebrew::Bundle::CaskDumper.reset!
|
||||
Homebrew::Bundle::BrewDumper.reset!
|
||||
Homebrew::Bundle::FormulaDumper.reset!
|
||||
Homebrew::Bundle::TapDumper.reset!
|
||||
Homebrew::Bundle::WhalebrewDumper.reset!
|
||||
Homebrew::Bundle::VscodeExtensionDumper.reset!
|
||||
@ -39,7 +39,7 @@ RSpec.describe Homebrew::Bundle::Commands::Dump do
|
||||
|
||||
it "exits before doing any work" do
|
||||
expect(Homebrew::Bundle::TapDumper).not_to receive(:dump)
|
||||
expect(Homebrew::Bundle::BrewDumper).not_to receive(:dump)
|
||||
expect(Homebrew::Bundle::FormulaDumper).not_to receive(:dump)
|
||||
expect(Homebrew::Bundle::CaskDumper).not_to receive(:dump)
|
||||
expect(Homebrew::Bundle::WhalebrewDumper).not_to receive(:dump)
|
||||
expect do
|
||||
|
@ -30,7 +30,7 @@ RSpec.describe Homebrew::Bundle::Commands::Install do
|
||||
it "does not raise an error" do
|
||||
allow(Homebrew::Bundle::TapInstaller).to receive(:preinstall).and_return(false)
|
||||
allow(Homebrew::Bundle::VscodeExtensionInstaller).to receive(:preinstall).and_return(false)
|
||||
allow(Homebrew::Bundle::BrewInstaller).to receive_messages(preinstall: true, install: true)
|
||||
allow(Homebrew::Bundle::FormulaInstaller).to receive_messages(preinstall: true, install: true)
|
||||
allow(Homebrew::Bundle::CaskInstaller).to receive_messages(preinstall: true, install: true)
|
||||
allow(Homebrew::Bundle::MacAppStoreInstaller).to receive_messages(preinstall: true, install: true)
|
||||
allow_any_instance_of(Pathname).to receive(:read).and_return(brewfile_contents)
|
||||
@ -40,7 +40,7 @@ RSpec.describe Homebrew::Bundle::Commands::Install do
|
||||
it "#dsl returns a valid DSL" do
|
||||
allow(Homebrew::Bundle::TapInstaller).to receive(:preinstall).and_return(false)
|
||||
allow(Homebrew::Bundle::VscodeExtensionInstaller).to receive(:preinstall).and_return(false)
|
||||
allow(Homebrew::Bundle::BrewInstaller).to receive_messages(preinstall: true, install: true)
|
||||
allow(Homebrew::Bundle::FormulaInstaller).to receive_messages(preinstall: true, install: true)
|
||||
allow(Homebrew::Bundle::CaskInstaller).to receive_messages(preinstall: true, install: true)
|
||||
allow(Homebrew::Bundle::MacAppStoreInstaller).to receive_messages(preinstall: true, install: true)
|
||||
allow_any_instance_of(Pathname).to receive(:read).and_return(brewfile_contents)
|
||||
@ -49,7 +49,7 @@ RSpec.describe Homebrew::Bundle::Commands::Install do
|
||||
end
|
||||
|
||||
it "does not raise an error when skippable" do
|
||||
expect(Homebrew::Bundle::BrewInstaller).not_to receive(:install)
|
||||
expect(Homebrew::Bundle::FormulaInstaller).not_to receive(:install)
|
||||
|
||||
allow(Homebrew::Bundle::Skipper).to receive(:skip?).and_return(true)
|
||||
allow_any_instance_of(Pathname).to receive(:read)
|
||||
@ -58,7 +58,7 @@ RSpec.describe Homebrew::Bundle::Commands::Install do
|
||||
end
|
||||
|
||||
it "exits on failures" do
|
||||
allow(Homebrew::Bundle::BrewInstaller).to receive_messages(preinstall: true, install: false)
|
||||
allow(Homebrew::Bundle::FormulaInstaller).to receive_messages(preinstall: true, install: false)
|
||||
allow(Homebrew::Bundle::CaskInstaller).to receive_messages(preinstall: true, install: false)
|
||||
allow(Homebrew::Bundle::MacAppStoreInstaller).to receive_messages(preinstall: true, install: false)
|
||||
allow(Homebrew::Bundle::TapInstaller).to receive_messages(preinstall: true, install: false)
|
||||
@ -71,7 +71,7 @@ RSpec.describe Homebrew::Bundle::Commands::Install do
|
||||
it "skips installs from failed taps" do
|
||||
allow(Homebrew::Bundle::CaskInstaller).to receive(:preinstall).and_return(false)
|
||||
allow(Homebrew::Bundle::TapInstaller).to receive_messages(preinstall: true, install: false)
|
||||
allow(Homebrew::Bundle::BrewInstaller).to receive_messages(preinstall: true, install: true)
|
||||
allow(Homebrew::Bundle::FormulaInstaller).to receive_messages(preinstall: true, install: true)
|
||||
allow(Homebrew::Bundle::MacAppStoreInstaller).to receive_messages(preinstall: true, install: true)
|
||||
allow(Homebrew::Bundle::VscodeExtensionInstaller).to receive_messages(preinstall: true, install: true)
|
||||
allow_any_instance_of(Pathname).to receive(:read).and_return(brewfile_contents)
|
||||
|
@ -4,9 +4,11 @@ require "bundle"
|
||||
require "bundle/commands/list"
|
||||
|
||||
RSpec.describe Homebrew::Bundle::Commands::List do
|
||||
subject(:list) { described_class.run(global: false, file: nil, brews:, casks:, taps:, mas:, whalebrew:, vscode:) }
|
||||
subject(:list) do
|
||||
described_class.run(global: false, file: nil, formulae:, casks:, taps:, mas:, whalebrew:, vscode:)
|
||||
end
|
||||
|
||||
let(:brews) { true }
|
||||
let(:formulae) { true }
|
||||
let(:casks) { false }
|
||||
let(:taps) { false }
|
||||
let(:mas) { false }
|
||||
@ -38,7 +40,7 @@ RSpec.describe Homebrew::Bundle::Commands::List do
|
||||
describe "limiting when certain options are passed" do
|
||||
types_and_deps = {
|
||||
taps: "phinze/cask",
|
||||
brews: "mysql",
|
||||
formulae: "mysql",
|
||||
casks: "google-chrome",
|
||||
mas: "1Password",
|
||||
whalebrew: "whalebrew/imagemagick",
|
||||
@ -56,7 +58,7 @@ RSpec.describe Homebrew::Bundle::Commands::List do
|
||||
verb = (options_list.length == 1 && "is") || "are"
|
||||
|
||||
context "when #{opts} #{verb} passed" do
|
||||
let(:brews) { args_hash[:brews] }
|
||||
let(:formulae) { args_hash[:formulae] }
|
||||
let(:casks) { args_hash[:casks] }
|
||||
let(:taps) { args_hash[:taps] }
|
||||
let(:mas) { args_hash[:mas] }
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
require "bundle"
|
||||
require "bundle/dumper"
|
||||
require "bundle/brew_dumper"
|
||||
require "bundle/formula_dumper"
|
||||
require "bundle/tap_dumper"
|
||||
require "bundle/cask_dumper"
|
||||
require "bundle/mac_app_store_dumper"
|
||||
@ -22,7 +22,7 @@ RSpec.describe Homebrew::Bundle::Dumper do
|
||||
cask_installed?: true, mas_installed?: false, whalebrew_installed?: false,
|
||||
vscode_installed?: false
|
||||
)
|
||||
Homebrew::Bundle::BrewDumper.reset!
|
||||
Homebrew::Bundle::FormulaDumper.reset!
|
||||
Homebrew::Bundle::TapDumper.reset!
|
||||
Homebrew::Bundle::CaskDumper.reset!
|
||||
Homebrew::Bundle::MacAppStoreDumper.reset!
|
||||
@ -49,7 +49,7 @@ RSpec.describe Homebrew::Bundle::Dumper do
|
||||
|
||||
it "generates output" do
|
||||
expect(dumper.build_brewfile(
|
||||
describe: false, no_restart: false, brews: true, taps: true, casks: true, mas: true,
|
||||
describe: false, no_restart: false, formulae: true, taps: true, casks: true, mas: true,
|
||||
whalebrew: true, vscode: true
|
||||
)).to eql("cask \"google-chrome\"\ncask \"java\"\ncask \"iterm2-beta\"\n")
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user