diff options
Diffstat (limited to 'Library/Homebrew/cmd/diy.rb')
| -rw-r--r-- | Library/Homebrew/cmd/diy.rb | 27 | 
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 | 
