Merge pull request #8376 from MLH-Fellowship/warn-conflicting-cask
named args: Warn when user references a formula with the same name as a cask
This commit is contained in:
commit
b932299222
@ -26,6 +26,8 @@ module Homebrew
|
|||||||
|
|
||||||
downcased_unique_named.each do |name|
|
downcased_unique_named.each do |name|
|
||||||
formulae_and_casks << Formulary.factory(name, spec)
|
formulae_and_casks << Formulary.factory(name, spec)
|
||||||
|
|
||||||
|
puts "Treating #{name} as a formula. For the cask, use homebrew/cask/#{name}" if cask_exists_with_ref name
|
||||||
rescue FormulaUnavailableError
|
rescue FormulaUnavailableError
|
||||||
begin
|
begin
|
||||||
formulae_and_casks << Cask::CaskLoader.load(name)
|
formulae_and_casks << Cask::CaskLoader.load(name)
|
||||||
@ -51,6 +53,8 @@ module Homebrew
|
|||||||
|
|
||||||
downcased_unique_named.each do |name|
|
downcased_unique_named.each do |name|
|
||||||
resolved_formulae << Formulary.resolve(name, spec: spec(nil), force_bottle: @force_bottle, flags: @flags)
|
resolved_formulae << Formulary.resolve(name, spec: spec(nil), force_bottle: @force_bottle, flags: @flags)
|
||||||
|
|
||||||
|
puts "Treating #{name} as a formula. For the cask, use homebrew/cask/#{name}" if cask_exists_with_ref name
|
||||||
rescue FormulaUnavailableError
|
rescue FormulaUnavailableError
|
||||||
begin
|
begin
|
||||||
casks << Cask::CaskLoader.load(name)
|
casks << Cask::CaskLoader.load(name)
|
||||||
@ -91,6 +95,8 @@ module Homebrew
|
|||||||
|
|
||||||
downcased_unique_named.each do |name|
|
downcased_unique_named.each do |name|
|
||||||
kegs << resolve_keg(name)
|
kegs << resolve_keg(name)
|
||||||
|
|
||||||
|
puts "Treating #{name} as a keg. For the cask, use homebrew/cask/#{name}" if cask_exists_with_ref name
|
||||||
rescue NoSuchKegError, FormulaUnavailableError
|
rescue NoSuchKegError, FormulaUnavailableError
|
||||||
begin
|
begin
|
||||||
casks << Cask::CaskLoader.load(name)
|
casks << Cask::CaskLoader.load(name)
|
||||||
@ -163,6 +169,12 @@ module Homebrew
|
|||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def cask_exists_with_ref(ref)
|
||||||
|
Cask::CaskLoader.load ref
|
||||||
|
rescue Cask::CaskUnavailableError
|
||||||
|
false
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -25,10 +25,7 @@ module Homebrew
|
|||||||
end
|
end
|
||||||
|
|
||||||
homepages = args.formulae_and_casks.map do |formula_or_cask|
|
homepages = args.formulae_and_casks.map do |formula_or_cask|
|
||||||
disclaimer = disclaimers(formula_or_cask)
|
puts "Opening homepage for #{name_of(formula_or_cask)}"
|
||||||
disclaimer = " (#{disclaimer})" if disclaimer.present?
|
|
||||||
|
|
||||||
puts "Opening homepage for #{name_of(formula_or_cask)}#{disclaimer}"
|
|
||||||
formula_or_cask.homepage
|
formula_or_cask.homepage
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -42,15 +39,4 @@ module Homebrew
|
|||||||
"Cask #{formula_or_cask.token}"
|
"Cask #{formula_or_cask.token}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def disclaimers(formula_or_cask)
|
|
||||||
return unless formula_or_cask.is_a? Formula
|
|
||||||
|
|
||||||
begin
|
|
||||||
cask = Cask::CaskLoader.load formula_or_cask.name
|
|
||||||
"for the cask, use #{cask.tap.name}/#{cask.token}"
|
|
||||||
rescue Cask::CaskUnavailableError
|
|
||||||
nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|||||||
@ -39,8 +39,7 @@ describe Homebrew::CLI::NamedArgs do
|
|||||||
|
|
||||||
describe "#to_formulae" do
|
describe "#to_formulae" do
|
||||||
it "returns formulae" do
|
it "returns formulae" do
|
||||||
allow(Formulary).to receive(:loader_for).and_call_original
|
stub_formula_loader foo, call_original: true
|
||||||
stub_formula_loader foo
|
|
||||||
stub_formula_loader bar
|
stub_formula_loader bar
|
||||||
|
|
||||||
expect(described_class.new("foo", "bar").to_formulae).to eq [foo, bar]
|
expect(described_class.new("foo", "bar").to_formulae).to eq [foo, bar]
|
||||||
@ -49,9 +48,8 @@ describe Homebrew::CLI::NamedArgs do
|
|||||||
|
|
||||||
describe "#to_formulae_and_casks" do
|
describe "#to_formulae_and_casks" do
|
||||||
it "returns formulae and casks" do
|
it "returns formulae and casks" do
|
||||||
allow(Formulary).to receive(:loader_for).and_call_original
|
stub_formula_loader foo, call_original: true
|
||||||
stub_formula_loader foo
|
stub_cask_loader baz, call_original: true
|
||||||
stub_cask_loader baz
|
|
||||||
|
|
||||||
expect(described_class.new("foo", "baz").to_formulae_and_casks).to eq [foo, baz]
|
expect(described_class.new("foo", "baz").to_formulae_and_casks).to eq [foo, baz]
|
||||||
end
|
end
|
||||||
@ -69,7 +67,7 @@ describe Homebrew::CLI::NamedArgs do
|
|||||||
it "returns resolved formulae, as well as casks" do
|
it "returns resolved formulae, as well as casks" do
|
||||||
allow(Formulary).to receive(:resolve).and_call_original
|
allow(Formulary).to receive(:resolve).and_call_original
|
||||||
allow(Formulary).to receive(:resolve).with("foo", any_args).and_return foo
|
allow(Formulary).to receive(:resolve).with("foo", any_args).and_return foo
|
||||||
stub_cask_loader baz
|
stub_cask_loader baz, call_original: true
|
||||||
|
|
||||||
resolved_formulae, casks = described_class.new("foo", "baz").to_resolved_formulae_to_casks
|
resolved_formulae, casks = described_class.new("foo", "baz").to_resolved_formulae_to_casks
|
||||||
|
|
||||||
@ -101,7 +99,7 @@ describe Homebrew::CLI::NamedArgs do
|
|||||||
named_args = described_class.new("foo", "baz")
|
named_args = described_class.new("foo", "baz")
|
||||||
allow(named_args).to receive(:resolve_keg).and_call_original
|
allow(named_args).to receive(:resolve_keg).and_call_original
|
||||||
allow(named_args).to receive(:resolve_keg).with("foo").and_return foo_keg
|
allow(named_args).to receive(:resolve_keg).with("foo").and_return foo_keg
|
||||||
stub_cask_loader baz
|
stub_cask_loader baz, call_original: true
|
||||||
|
|
||||||
kegs, casks = named_args.to_kegs_to_casks
|
kegs, casks = named_args.to_kegs_to_casks
|
||||||
|
|
||||||
|
|||||||
@ -5,7 +5,9 @@ require "cask/cask_loader"
|
|||||||
module Test
|
module Test
|
||||||
module Helper
|
module Helper
|
||||||
module Cask
|
module Cask
|
||||||
def stub_cask_loader(cask, ref = cask.token)
|
def stub_cask_loader(cask, ref = cask.token, call_original: false)
|
||||||
|
allow(::Cask::CaskLoader).to receive(:for).and_call_original if call_original
|
||||||
|
|
||||||
loader = ::Cask::CaskLoader::FromInstanceLoader.new cask
|
loader = ::Cask::CaskLoader::FromInstanceLoader.new cask
|
||||||
allow(::Cask::CaskLoader).to receive(:for).with(ref).and_return(loader)
|
allow(::Cask::CaskLoader).to receive(:for).with(ref).and_return(loader)
|
||||||
end
|
end
|
||||||
|
|||||||
@ -11,7 +11,9 @@ module Test
|
|||||||
|
|
||||||
# Use a stubbed {Formulary::FormulaLoader} to make a given formula be found
|
# Use a stubbed {Formulary::FormulaLoader} to make a given formula be found
|
||||||
# when loading from {Formulary} with `ref`.
|
# when loading from {Formulary} with `ref`.
|
||||||
def stub_formula_loader(formula, ref = formula.full_name)
|
def stub_formula_loader(formula, ref = formula.full_name, call_original: false)
|
||||||
|
allow(Formulary).to receive(:loader_for).and_call_original if call_original
|
||||||
|
|
||||||
loader = double(get_formula: formula)
|
loader = double(get_formula: formula)
|
||||||
allow(Formulary).to receive(:loader_for).with(ref, from: :keg).and_return(loader)
|
allow(Formulary).to receive(:loader_for).with(ref, from: :keg).and_return(loader)
|
||||||
allow(Formulary).to receive(:loader_for).with(ref, from: nil).and_return(loader)
|
allow(Formulary).to receive(:loader_for).with(ref, from: nil).and_return(loader)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user