Move conflict message into conflict class

This commit is contained in:
Jack Nagel 2012-11-06 17:32:23 -06:00
parent 21098905ab
commit 45e208d26b
2 changed files with 15 additions and 16 deletions

View File

@ -721,19 +721,7 @@ private
end end
def conflicts_with formula, opts={} def conflicts_with formula, opts={}
message = <<-EOS.undent dependencies.add ConflictRequirement.new(formula, name, opts)
#{formula} cannot be installed alongside #{name.downcase}.
EOS
message << "This is because #{opts[:because]}\n" if opts[:because]
unless ARGV.force? then message << <<-EOS.undent
Please `brew unlink #{formula}` before continuing. Unlinking removes
the formula's symlinks from #{HOMEBREW_PREFIX}. You can link the
formula again after the install finishes. You can --force this install
but the build may fail or cause obscure side-effects in the end-binary.
EOS
end
dependencies.add ConflictRequirement.new(formula, message)
end end
def skip_clean *paths def skip_clean *paths

View File

@ -177,12 +177,23 @@ end
class ConflictRequirement < Requirement class ConflictRequirement < Requirement
attr_reader :formula attr_reader :formula
def initialize formula, message def initialize formula, name, opts={}
@formula = formula @formula = formula
@message = message @name = name
@opts = opts
end end
def message; @message; end def message
message = "#{@name.downcase} cannot be installed alongside #{@formula}.\n"
message << "This is because #{@opts[:because]}\n" if @opts[:because]
message << <<-EOS.undent unless ARGV.force?
Please `brew unlink #{@formula}` before continuing. Unlinking removes
the formula's symlinks from #{HOMEBREW_PREFIX}. You can link the
formula again after the install finishes. You can --force this install
but the build may fail or cause obscure side-effects in the end-binary.
EOS
message
end
def satisfied? def satisfied?
keg = Formula.factory(@formula).prefix keg = Formula.factory(@formula).prefix