From 088c774d87edafd805735a9c4b0a1a25dc11b42c Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Sat, 15 Mar 2014 12:55:14 -0500 Subject: [PATCH] diy: warn when detected name is an alias cf. Homebrew/homebrew#22778. --- Library/Homebrew/cmd/diy.rb | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/Library/Homebrew/cmd/diy.rb b/Library/Homebrew/cmd/diy.rb index fa1822c0e0..fa2304dda6 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