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
def conflicts_with formula, opts={}
message = <<-EOS.undent
#{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)
dependencies.add ConflictRequirement.new(formula, name, opts)
end
def skip_clean *paths

View File

@ -177,12 +177,23 @@ end
class ConflictRequirement < Requirement
attr_reader :formula
def initialize formula, message
def initialize formula, name, opts={}
@formula = formula
@message = message
@name = name
@opts = opts
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?
keg = Formula.factory(@formula).prefix