aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Nagel2014-03-15 12:55:14 -0500
committerJack Nagel2014-03-15 12:55:14 -0500
commit088c774d87edafd805735a9c4b0a1a25dc11b42c (patch)
tree5e34c1f3990d0af05104f0cc7c3ca8c1ff7080af
parent30b4961dde355b03fc9d53f494c7a9a8910df333 (diff)
downloadbrew-088c774d87edafd805735a9c4b0a1a25dc11b42c.tar.bz2
diy: warn when detected name is an alias
cf. Homebrew/homebrew#22778.
-rw-r--r--Library/Homebrew/cmd/diy.rb27
1 files changed, 21 insertions, 6 deletions
diff --git a/Library/Homebrew/cmd/diy.rb b/Library/Homebrew/cmd/diy.rb
index fa1822c0e..fa2304dda 100644
--- a/Library/Homebrew/cmd/diy.rb
+++ b/Library/Homebrew/cmd/diy.rb
@@ -1,3 +1,5 @@
+require "formula"
+
module Homebrew extend self
def diy
%w[name version].each do |opt|
@@ -18,12 +20,8 @@ module Homebrew extend self
end
name = ARGV.value "name"
- name ||= if ARGV.include? "--set-name"
- ARGV.next
- else
- basename = path.basename.to_s
- basename[/(.*?)-?#{Regexp.escape(version)}/, 1] || basename
- end
+ name ||= ARGV.next if ARGV.include? "--set-name"
+ name ||= detected_name(path, version)
prefix = HOMEBREW_CELLAR/name/version
@@ -35,4 +33,21 @@ module Homebrew extend self
raise "Couldn't determine build system"
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