diy: warn when detected name is an alias

cf. Homebrew/homebrew#22778.
This commit is contained in:
Jack Nagel 2014-03-15 12:55:14 -05:00
parent 30b4961dde
commit 088c774d87

View File

@ -1,3 +1,5 @@
require "formula"
module Homebrew extend self module Homebrew extend self
def diy def diy
%w[name version].each do |opt| %w[name version].each do |opt|
@ -18,12 +20,8 @@ module Homebrew extend self
end end
name = ARGV.value "name" name = ARGV.value "name"
name ||= if ARGV.include? "--set-name" name ||= ARGV.next if ARGV.include? "--set-name"
ARGV.next name ||= detected_name(path, version)
else
basename = path.basename.to_s
basename[/(.*?)-?#{Regexp.escape(version)}/, 1] || basename
end
prefix = HOMEBREW_CELLAR/name/version prefix = HOMEBREW_CELLAR/name/version
@ -35,4 +33,21 @@ module Homebrew extend self
raise "Couldn't determine build system" raise "Couldn't determine build system"
end end
end end
def detected_name(path, version)
basename = path.basename.to_s
detected_name = basename[/(.*?)-?#{Regexp.escape(version)}/, 1] || basename
canonical_name = Formula.canonical_name(detected_name)
odie <<-EOS.undent if detected_name != canonical_name
The detected name #{detected_name.inspect} exists in Homebrew as an alias
of #{canonical_name.inspect}. Consider using the canonical name instead:
brew diy --name=#{canonical_name}
To continue using the detected name, pass it explicitly:
brew diy --name=#{detected_name}
EOS
detected_name
end
end end