Skip to content

Commit

Permalink
Merge pull request #1610 from Homebrew/cask_install_adopt
Browse files Browse the repository at this point in the history
cask_installer: use `--adopt` if `--force` is not provided.
  • Loading branch information
MikeMcQuaid authored Feb 18, 2025
2 parents 38b611f + f43150f commit 7085d74
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 13 deletions.
1 change: 1 addition & 0 deletions lib/bundle/cask_installer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ def install(name, preinstall: true, no_upgrade: false, verbose: false, force: fa
end

args << "--force" if force
args << "--adopt" unless args.include?("--force")
args.uniq!

with_args = " with #{args.join(" ")}" if args.present?
Expand Down
26 changes: 13 additions & 13 deletions spec/bundle/cask_installer_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -92,43 +92,43 @@
end

it "installs cask" do
expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "install", "--cask", "google-chrome",
verbose: false)
.and_return(true)
expect(Bundle).to receive(:brew).with("install", "--cask", "google-chrome", "--adopt",
verbose: false)
.and_return(true)
expect(described_class.preinstall("google-chrome")).to be(true)
expect(described_class.install("google-chrome")).to be(true)
end

it "installs cask with arguments" do
expect(Bundle).to(
receive(:system).with(HOMEBREW_BREW_FILE, "install", "--cask", "firefox", "--appdir=/Applications",
verbose: false)
receive(:brew).with("install", "--cask", "firefox", "--appdir=/Applications", "--adopt",
verbose: false)
.and_return(true),
)
expect(described_class.preinstall("firefox", args: { appdir: "/Applications" })).to be(true)
expect(described_class.install("firefox", args: { appdir: "/Applications" })).to be(true)
end

it "reports a failure" do
expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "install", "--cask", "google-chrome",
verbose: false)
.and_return(false)
expect(Bundle).to receive(:brew).with("install", "--cask", "google-chrome", "--adopt",
verbose: false)
.and_return(false)
expect(described_class.preinstall("google-chrome")).to be(true)
expect(described_class.install("google-chrome")).to be(false)
end

context "with boolean arguments" do
it "includes a flag if true" do
expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "install", "--cask", "iterm", "--force",
verbose: false)
.and_return(true)
expect(Bundle).to receive(:brew).with("install", "--cask", "iterm", "--force",
verbose: false)
.and_return(true)
expect(described_class.preinstall("iterm", args: { force: true })).to be(true)
expect(described_class.install("iterm", args: { force: true })).to be(true)
end

it "does not include a flag if false" do
expect(Bundle).to receive(:system).with(HOMEBREW_BREW_FILE, "install", "--cask", "iterm", verbose: false)
.and_return(true)
expect(Bundle).to receive(:brew).with("install", "--cask", "iterm", "--adopt", verbose: false)
.and_return(true)
expect(described_class.preinstall("iterm", args: { force: false })).to be(true)
expect(described_class.install("iterm", args: { force: false })).to be(true)
end
Expand Down

0 comments on commit 7085d74

Please sign in to comment.