From 21c63c7d4df0ba48960cfeea6d5243f5eec2d587 Mon Sep 17 00:00:00 2001 From: Dawid Dziurla Date: Thu, 27 May 2021 19:21:27 +0200 Subject: [PATCH] bundle: use HOMEBREW_BREW_FILE --- lib/bundle/brew_installer.rb | 14 +++++------ lib/bundle/brew_services.rb | 4 +-- lib/bundle/cask_installer.rb | 4 +-- lib/bundle/commands/cleanup.rb | 10 ++++---- lib/bundle/mac_app_store_installer.rb | 2 +- lib/bundle/tap_installer.rb | 4 +-- lib/bundle/whalebrew_installer.rb | 2 +- spec/bundle/brew_installer_spec.rb | 26 +++++++++++--------- spec/bundle/brew_services_spec.rb | 8 +++--- spec/bundle/cask_installer_spec.rb | 19 ++++++++------ spec/bundle/commands/cleanup_command_spec.rb | 8 +++--- spec/bundle/mac_app_store_installer_spec.rb | 2 +- spec/bundle/tap_installer_spec.rb | 6 +++-- spec/bundle/whalebrew_installer_spec.rb | 2 +- spec/stub/global.rb | 1 + 15 files changed, 63 insertions(+), 49 deletions(-) diff --git a/lib/bundle/brew_installer.rb b/lib/bundle/brew_installer.rb index 84d25777b..d639a2645 100644 --- a/lib/bundle/brew_installer.rb +++ b/lib/bundle/brew_installer.rb @@ -75,20 +75,20 @@ def link_change_state!(verbose: false) when true unless linked_and_keg_only? puts "Force-linking #{@name} formula." if verbose - Bundle.system("brew", "link", "--force", @name, verbose: verbose) + Bundle.system(HOMEBREW_BREW_FILE, "link", "--force", @name, verbose: verbose) end when false unless unlinked_and_not_keg_only? puts "Unlinking #{@name} formula." if verbose - Bundle.system("brew", "unlink", @name, verbose: verbose) + Bundle.system(HOMEBREW_BREW_FILE, "unlink", @name, verbose: verbose) end when nil if unlinked_and_not_keg_only? puts "Linking #{@name} formula." if verbose - Bundle.system("brew", "link", @name, verbose: verbose) + Bundle.system(HOMEBREW_BREW_FILE, "link", @name, verbose: verbose) elsif linked_and_keg_only? puts "Unlinking #{@name} formula." if verbose - Bundle.system("brew", "unlink", @name, verbose: verbose) + Bundle.system(HOMEBREW_BREW_FILE, "unlink", @name, verbose: verbose) end end end @@ -204,7 +204,7 @@ def resolve_conflicts!(verbose:) It is currently installed and conflicts with #{@name}. EOS end - return false unless Bundle.system("brew", "unlink", conflict, verbose: verbose) + return false unless Bundle.system(HOMEBREW_BREW_FILE, "unlink", conflict, verbose: verbose) if @restart_service puts "Stopping #{conflict} service (if it is running)." if verbose @@ -217,7 +217,7 @@ def resolve_conflicts!(verbose:) def install!(verbose:) puts "Installing #{@name} formula. It is not currently installed." if verbose - unless Bundle.system("brew", "install", "--formula", @full_name, *@args, verbose: verbose) + unless Bundle.system(HOMEBREW_BREW_FILE, "install", "--formula", @full_name, *@args, verbose: verbose) @changed = nil return :failed end @@ -235,7 +235,7 @@ def upgrade!(verbose:) end puts "Upgrading #{@name} formula. It is installed but not up-to-date." if verbose - unless Bundle.system("brew", "upgrade", "--formula", @name, verbose: verbose) + unless Bundle.system(HOMEBREW_BREW_FILE, "upgrade", "--formula", @name, verbose: verbose) @changed = nil return :failed end diff --git a/lib/bundle/brew_services.rb b/lib/bundle/brew_services.rb index 8be48e739..19ca7a77e 100644 --- a/lib/bundle/brew_services.rb +++ b/lib/bundle/brew_services.rb @@ -11,14 +11,14 @@ def reset! def stop(name, verbose: false) return true unless started?(name) - return unless Bundle.system "brew", "services", "stop", name, verbose: verbose + return unless Bundle.system HOMEBREW_BREW_FILE, "services", "stop", name, verbose: verbose started_services.delete(name) true end def restart(name, verbose: false) - return unless Bundle.system "brew", "services", "restart", name, verbose: verbose + return unless Bundle.system HOMEBREW_BREW_FILE, "services", "restart", name, verbose: verbose started_services << name true diff --git a/lib/bundle/cask_installer.rb b/lib/bundle/cask_installer.rb index 28a10366a..0308f7abd 100644 --- a/lib/bundle/cask_installer.rb +++ b/lib/bundle/cask_installer.rb @@ -18,7 +18,7 @@ def install(name, no_upgrade: false, verbose: false, **options) if !no_upgrade && (outdated_casks.include?(name) || all_outdated_casks.include?(name) && greedy) status = "#{greedy ? "may not be" : "not"} up-to-date" puts "Upgrading #{name} cask. It is installed but #{status}." if verbose - return :failed unless Bundle.system "brew", "upgrade", "--cask", full_name, verbose: verbose + return :failed unless Bundle.system HOMEBREW_BREW_FILE, "upgrade", "--cask", full_name, verbose: verbose return :success end @@ -38,7 +38,7 @@ def install(name, no_upgrade: false, verbose: false, **options) puts "Installing #{name} cask. It is not currently installed." if verbose - return :failed unless Bundle.system "brew", "install", "--cask", full_name, *args, verbose: verbose + return :failed unless Bundle.system HOMEBREW_BREW_FILE, "install", "--cask", full_name, *args, verbose: verbose installed_casks << name :success diff --git a/lib/bundle/commands/cleanup.rb b/lib/bundle/commands/cleanup.rb index 75c5c0c1a..53d908d11 100644 --- a/lib/bundle/commands/cleanup.rb +++ b/lib/bundle/commands/cleanup.rb @@ -24,18 +24,18 @@ def run(global: false, file: nil, force: false, zap: false) if force if casks.any? args = zap ? ["--zap"] : [] - Kernel.system "brew", "uninstall", "--cask", *args, "--force", *casks + Kernel.system HOMEBREW_BREW_FILE, "uninstall", "--cask", *args, "--force", *casks puts "Uninstalled #{casks.size} cask#{(casks.size == 1) ? "" : "s"}" end if formulae.any? - Kernel.system "brew", "uninstall", "--formula", "--force", *formulae + Kernel.system HOMEBREW_BREW_FILE, "uninstall", "--formula", "--force", *formulae puts "Uninstalled #{formulae.size} formula#{(formulae.size == 1) ? "" : "e"}" end - Kernel.system "brew", "untap", *taps if taps.any? + Kernel.system HOMEBREW_BREW_FILE, "untap", *taps if taps.any? - cleanup = system_output_no_stderr("brew", "cleanup") + cleanup = system_output_no_stderr(HOMEBREW_BREW_FILE, "cleanup") puts cleanup unless cleanup.empty? else if casks.any? @@ -53,7 +53,7 @@ def run(global: false, file: nil, force: false, zap: false) puts Formatter.columns taps end - cleanup = system_output_no_stderr("brew", "cleanup", "--dry-run") + cleanup = system_output_no_stderr(HOMEBREW_BREW_FILE, "cleanup", "--dry-run") unless cleanup.empty? puts "Would `brew cleanup`:" puts cleanup diff --git a/lib/bundle/mac_app_store_installer.rb b/lib/bundle/mac_app_store_installer.rb index 32a5c7a0e..3a0b67eae 100644 --- a/lib/bundle/mac_app_store_installer.rb +++ b/lib/bundle/mac_app_store_installer.rb @@ -14,7 +14,7 @@ def reset! def install(name, id, no_upgrade: false, verbose: false) unless Bundle.mas_installed? puts "Installing mas. It is not currently installed." if verbose - Bundle.system "brew", "install", "mas", verbose: verbose + Bundle.system HOMEBREW_BREW_FILE, "install", "mas", verbose: verbose raise "Unable to install #{name} app. mas installation failed." unless Bundle.mas_installed? end diff --git a/lib/bundle/tap_installer.rb b/lib/bundle/tap_installer.rb index d75e0fccc..8961683b3 100644 --- a/lib/bundle/tap_installer.rb +++ b/lib/bundle/tap_installer.rb @@ -12,9 +12,9 @@ def install(name, verbose: false, **options) puts "Installing #{name} tap. It is not currently installed." if verbose success = if options[:clone_target] - Bundle.system "brew", "tap", name, options[:clone_target], verbose: verbose + Bundle.system HOMEBREW_BREW_FILE, "tap", name, options[:clone_target], verbose: verbose else - Bundle.system "brew", "tap", name, verbose: verbose + Bundle.system HOMEBREW_BREW_FILE, "tap", name, verbose: verbose end return :failed unless success diff --git a/lib/bundle/whalebrew_installer.rb b/lib/bundle/whalebrew_installer.rb index 52b11413d..67fe77d57 100644 --- a/lib/bundle/whalebrew_installer.rb +++ b/lib/bundle/whalebrew_installer.rb @@ -11,7 +11,7 @@ def reset! def install(name, verbose: false, **_options) unless Bundle.whalebrew_installed? puts "Installing whalebrew. It is not currently installed." if verbose - Bundle.system "brew", "install", "whalebrew", verbose: verbose + Bundle.system HOMEBREW_BREW_FILE, "install", "whalebrew", verbose: verbose raise "Unable to install #{name} app. Whalebrew installation failed." unless Bundle.whalebrew_installed? end diff --git a/spec/bundle/brew_installer_spec.rb b/spec/bundle/brew_installer_spec.rb index 015079fd5..ff564e4b9 100644 --- a/spec/bundle/brew_installer_spec.rb +++ b/spec/bundle/brew_installer_spec.rb @@ -42,7 +42,8 @@ def do_install end it "links formula" do - expect(Bundle).to receive(:system).with("brew", "link", "--force", "mysql", verbose: false).and_return(true) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "link", "--force", "mysql", + verbose: false).and_return(true) described_class.install(formula, link: true) end end @@ -53,7 +54,7 @@ def do_install end it "unlinks formula" do - expect(Bundle).to receive(:system).with("brew", "unlink", "mysql", verbose: false).and_return(true) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "unlink", "mysql", verbose: false).and_return(true) described_class.install(formula, link: false) end end @@ -65,7 +66,7 @@ def do_install it "links formula" do allow_any_instance_of(described_class).to receive(:unlinked_and_not_keg_only?).and_return(true) - expect(Bundle).to receive(:system).with("brew", "link", "mysql", verbose: false).and_return(true) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "link", "mysql", verbose: false).and_return(true) described_class.install(formula, link: nil) end end @@ -77,7 +78,7 @@ def do_install it "unlinks formula" do allow_any_instance_of(described_class).to receive(:linked_and_keg_only?).and_return(true) - expect(Bundle).to receive(:system).with("brew", "unlink", "mysql", verbose: false).and_return(true) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "unlink", "mysql", verbose: false).and_return(true) described_class.install(formula, link: nil) end end @@ -93,8 +94,10 @@ def do_install end def sane?(verbose:) - expect(Bundle).to receive(:system).with("brew", "unlink", "mysql55", verbose: verbose).and_return(true) - expect(Bundle).to receive(:system).with("brew", "unlink", "mysql56", verbose: verbose).and_return(true) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "unlink", "mysql55", + verbose: verbose).and_return(true) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "unlink", "mysql56", + verbose: verbose).and_return(true) expect(Bundle::BrewServices).to receive(:stop).with("mysql55", verbose: verbose).and_return(true) expect(Bundle::BrewServices).to receive(:stop).with("mysql56", verbose: verbose).and_return(true) expect(Bundle::BrewServices).to receive(:restart).with(formula, verbose: verbose).and_return(true) @@ -185,14 +188,14 @@ def sane?(verbose:) it "install formula" do expect(Bundle).to receive(:system) - .with("brew", "install", "--formula", formula, "--with-option", verbose: false) + .with(HOMEBREW_BREW_FILE, "install", "--formula", formula, "--with-option", verbose: false) .and_return(true) expect(do_install).to be(:success) end it "reports a failure" do expect(Bundle).to receive(:system) - .with("brew", "install", "--formula", formula, "--with-option", verbose: false) + .with(HOMEBREW_BREW_FILE, "install", "--formula", formula, "--with-option", verbose: false) .and_return(false) expect(do_install).to be(:failed) end @@ -211,13 +214,13 @@ def sane?(verbose:) end it "upgrade formula" do - expect(Bundle).to receive(:system).with("brew", "upgrade", "--formula", formula, verbose: false) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "upgrade", "--formula", formula, verbose: false) .and_return(true) expect(do_install).to be(:success) end it "reports a failure" do - expect(Bundle).to receive(:system).with("brew", "upgrade", "--formula", formula, verbose: false) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "upgrade", "--formula", formula, verbose: false) .and_return(false) expect(do_install).to be(:failed) end @@ -228,7 +231,8 @@ def sane?(verbose:) end it "does not upgrade formula" do - expect(Bundle).not_to receive(:system).with("brew", "upgrade", "--formula", formula, verbose: false) + expect(Bundle).not_to receive(:system).with(HOMEBREW_BREW_FILE, "upgrade", "--formula", formula, + verbose: false) expect(do_install).to be(:skipped) end end diff --git a/spec/bundle/brew_services_spec.rb b/spec/bundle/brew_services_spec.rb index 9123eb7e4..4aa8a6f51 100644 --- a/spec/bundle/brew_services_spec.rb +++ b/spec/bundle/brew_services_spec.rb @@ -28,14 +28,15 @@ context "when the service is stopped" do it "when the service is started" do allow(described_class).to receive(:started_services).and_return(%w[nginx]) - expect(Bundle).to receive(:system).with("brew", "services", "stop", "nginx", verbose: false).and_return(true) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "services", "stop", "nginx", + verbose: false).and_return(true) expect(described_class.stop("nginx")).to be(true) expect(described_class.started_services).not_to include("nginx") end it "when the service is already stopped" do allow(described_class).to receive(:started_services).and_return(%w[]) - expect(Bundle).not_to receive(:system).with("brew", "services", "stop", "nginx", verbose: false) + expect(Bundle).not_to receive(:system).with(HOMEBREW_BREW_FILE, "services", "stop", "nginx", verbose: false) expect(described_class.stop("nginx")).to be(true) expect(described_class.started_services).not_to include("nginx") end @@ -43,7 +44,8 @@ it "restarts the service" do allow(described_class).to receive(:started_services).and_return([]) - expect(Bundle).to receive(:system).with("brew", "services", "restart", "nginx", verbose: false).and_return(true) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "services", "restart", "nginx", + verbose: false).and_return(true) expect(described_class.restart("nginx")).to be(true) expect(described_class.started_services).to include("nginx") end diff --git a/spec/bundle/cask_installer_spec.rb b/spec/bundle/cask_installer_spec.rb index c30a64dff..ea8aaaaa8 100644 --- a/spec/bundle/cask_installer_spec.rb +++ b/spec/bundle/cask_installer_spec.rb @@ -72,7 +72,8 @@ def do_greedy_install end it "upgrades" do - expect(Bundle).to receive(:system).with("brew", "upgrade", "--cask", "google-chrome", verbose: false) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "upgrade", "--cask", "google-chrome", + verbose: false) .and_return(true) expect(do_install).to be(:success) end @@ -86,7 +87,7 @@ def do_greedy_install end it "upgrades" do - expect(Bundle).to receive(:system).with("brew", "upgrade", "--cask", "opera", verbose: false) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "upgrade", "--cask", "opera", verbose: false) .and_return(true) expect(do_greedy_install).to be(:success) end @@ -98,33 +99,37 @@ def do_greedy_install end it "installs cask" do - expect(Bundle).to receive(:system).with("brew", "install", "--cask", "google-chrome", verbose: false) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "install", "--cask", "google-chrome", + verbose: false) .and_return(true) expect(do_install).to be(:success) end it "installs cask with arguments" do expect(Bundle).to \ - receive(:system).with("brew", "install", "--cask", "firefox", "--appdir=/Applications", verbose: false) + receive(:system).with(HOMEBREW_BREW_FILE, "install", "--cask", "firefox", "--appdir=/Applications", + verbose: false) .and_return(true) expect(described_class.install("firefox", args: { appdir: "/Applications" })).to eq(:success) end it "reports a failure" do - expect(Bundle).to receive(:system).with("brew", "install", "--cask", "google-chrome", verbose: false) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "install", "--cask", "google-chrome", + verbose: false) .and_return(false) expect(do_install).to be(:failed) end context "with boolean arguments" do it "includes a flag if true" do - expect(Bundle).to receive(:system).with("brew", "install", "--cask", "iterm", "--force", verbose: false) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "install", "--cask", "iterm", "--force", + verbose: false) .and_return(true) expect(described_class.install("iterm", args: { force: true })).to eq(:success) end it "does not include a flag if false" do - expect(Bundle).to receive(:system).with("brew", "install", "--cask", "iterm", verbose: false) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "install", "--cask", "iterm", verbose: false) .and_return(true) expect(described_class.install("iterm", args: { force: false })).to eq(:success) end diff --git a/spec/bundle/commands/cleanup_command_spec.rb b/spec/bundle/commands/cleanup_command_spec.rb index 290b4b53f..e364af834 100644 --- a/spec/bundle/commands/cleanup_command_spec.rb +++ b/spec/bundle/commands/cleanup_command_spec.rb @@ -95,7 +95,7 @@ end it "uninstalls casks" do - expect(Kernel).to receive(:system).with("brew", "uninstall", "--cask", "--force", "a", "b") + expect(Kernel).to receive(:system).with(HOMEBREW_BREW_FILE, "uninstall", "--cask", "--force", "a", "b") expect(described_class).to receive(:system_output_no_stderr).and_return("") expect { described_class.run(force: true) }.to output(/Uninstalled 2 casks/).to_stdout end @@ -110,7 +110,7 @@ end it "uninstalls casks" do - expect(Kernel).to receive(:system).with("brew", "uninstall", "--cask", "--zap", "--force", "a", "b") + expect(Kernel).to receive(:system).with(HOMEBREW_BREW_FILE, "uninstall", "--cask", "--zap", "--force", "a", "b") expect(described_class).to receive(:system_output_no_stderr).and_return("") expect { described_class.run(force: true, zap: true) }.to output(/Uninstalled 2 casks/).to_stdout end @@ -125,7 +125,7 @@ end it "uninstalls formulae" do - expect(Kernel).to receive(:system).with("brew", "uninstall", "--formula", "--force", "a", "b") + expect(Kernel).to receive(:system).with(HOMEBREW_BREW_FILE, "uninstall", "--formula", "--force", "a", "b") expect(described_class).to receive(:system_output_no_stderr).and_return("") expect { described_class.run(force: true) }.to output(/Uninstalled 2 formulae/).to_stdout end @@ -140,7 +140,7 @@ end it "untaps taps" do - expect(Kernel).to receive(:system).with("brew", "untap", "a", "b") + expect(Kernel).to receive(:system).with(HOMEBREW_BREW_FILE, "untap", "a", "b") expect(described_class).to receive(:system_output_no_stderr).and_return("") described_class.run(force: true) end diff --git a/spec/bundle/mac_app_store_installer_spec.rb b/spec/bundle/mac_app_store_installer_spec.rb index 12354aba0..f33af1984 100644 --- a/spec/bundle/mac_app_store_installer_spec.rb +++ b/spec/bundle/mac_app_store_installer_spec.rb @@ -28,7 +28,7 @@ def do_install end it "tries to install mas" do - expect(Bundle).to receive(:system).with("brew", "install", "mas", verbose: false).and_return(true) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "install", "mas", verbose: false).and_return(true) expect { do_install }.to raise_error(RuntimeError) end diff --git a/spec/bundle/tap_installer_spec.rb b/spec/bundle/tap_installer_spec.rb index a3f988ad7..84dbd31cf 100644 --- a/spec/bundle/tap_installer_spec.rb +++ b/spec/bundle/tap_installer_spec.rb @@ -34,13 +34,15 @@ def do_install(**options) end it "taps" do - expect(Bundle).to receive(:system).with("brew", "tap", "homebrew/cask", verbose: false).and_return(true) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "tap", "homebrew/cask", + verbose: false).and_return(true) expect(do_install).to be(:success) end context "with clone target" do it "taps" do - expect(Bundle).to receive(:system).with("brew", "tap", "homebrew/cask", "clone_target_path", verbose: false) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "tap", "homebrew/cask", "clone_target_path", + verbose: false) .and_return(true) expect(do_install(clone_target: "clone_target_path")).to be(:success) end diff --git a/spec/bundle/whalebrew_installer_spec.rb b/spec/bundle/whalebrew_installer_spec.rb index 9f4e34191..b5d5d68c4 100644 --- a/spec/bundle/whalebrew_installer_spec.rb +++ b/spec/bundle/whalebrew_installer_spec.rb @@ -43,7 +43,7 @@ def do_install end it "successfully installs whalebrew" do - expect(Bundle).to receive(:system).with("brew", "install", "whalebrew", verbose: false) + expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "install", "whalebrew", verbose: false) .and_return(true) expect { do_install }.to raise_error(RuntimeError) end diff --git a/spec/stub/global.rb b/spec/stub/global.rb index b9a859e17..e9127f7b9 100644 --- a/spec/stub/global.rb +++ b/spec/stub/global.rb @@ -2,4 +2,5 @@ HOMEBREW_PREFIX = Pathname("/usr/local").freeze HOMEBREW_REPOSITORY = Pathname("/usr/local/Homebrew").freeze +HOMEBREW_BREW_FILE = Pathname(HOMEBREW_PREFIX/"bin/brew").freeze HOMEBREW_VERSION = "2.6.0"