Move resolve_alias from ARGV to Formula
Also, call this function from a few places where the code was duplicated.
This commit is contained in:
		
							parent
							
								
									18f9969b65
								
							
						
					
					
						commit
						bb01afce4c
					
				@ -39,9 +39,9 @@ def __make url, name
 | 
			
		||||
  raise "#{path} already exists" if path.exist?
 | 
			
		||||
 | 
			
		||||
  if Formula.aliases.include? name and not ARGV.force?
 | 
			
		||||
    realname = HOMEBREW_REPOSITORY.join("Library/Aliases/#{name}").realpath.basename('.rb')
 | 
			
		||||
    realname = Formula.resolve_alias(name)
 | 
			
		||||
    raise <<-EOS.undent
 | 
			
		||||
          The formula #{realname} is already aliased to #{name}
 | 
			
		||||
          "#{name}" is an alias for formula "#{realname}".
 | 
			
		||||
          Please check that you are not creating a duplicate.
 | 
			
		||||
          To force creation use --force.
 | 
			
		||||
          EOS
 | 
			
		||||
@ -430,8 +430,7 @@ def search_brews text
 | 
			
		||||
  # Filter out aliases when the full name was also found
 | 
			
		||||
  results.reject do |alias_name|
 | 
			
		||||
    if aliases.include? alias_name
 | 
			
		||||
      resolved_name = (HOMEBREW_REPOSITORY+"Library/Aliases/#{alias_name}").readlink.basename('.rb').to_s
 | 
			
		||||
      results.include? resolved_name
 | 
			
		||||
      results.include? Formula.resolve_alias(alias_name)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
@ -13,15 +13,16 @@ module HomebrewArgvExtension
 | 
			
		||||
 | 
			
		||||
  def formulae
 | 
			
		||||
    require 'formula'
 | 
			
		||||
    @formulae ||= downcased_unique_named.map{ |name| Formula.factory(resolve_alias(name)) }
 | 
			
		||||
    @formulae ||= downcased_unique_named.map{ |name| Formula.factory(Formula.resolve_alias(name)) }
 | 
			
		||||
    raise FormulaUnspecifiedError if @formulae.empty?
 | 
			
		||||
    @formulae
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def kegs
 | 
			
		||||
    require 'keg'
 | 
			
		||||
    require 'formula'
 | 
			
		||||
    @kegs ||= downcased_unique_named.collect do |name|
 | 
			
		||||
      d = HOMEBREW_CELLAR + resolve_alias(name)
 | 
			
		||||
      d = HOMEBREW_CELLAR + Formula.resolve_alias(name)
 | 
			
		||||
      dirs = d.children.select{ |pn| pn.directory? } rescue []
 | 
			
		||||
      raise "No such keg: #{HOMEBREW_CELLAR}/#{name}" if not d.directory? or dirs.length == 0
 | 
			
		||||
      raise "#{name} has multiple installed versions" if dirs.length > 1
 | 
			
		||||
@ -114,15 +115,6 @@ module HomebrewArgvExtension
 | 
			
		||||
    EOS
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def resolve_alias name
 | 
			
		||||
    aka = HOMEBREW_REPOSITORY+"Library/Aliases/#{name}"
 | 
			
		||||
    if aka.file?
 | 
			
		||||
      aka.realpath.basename('.rb').to_s
 | 
			
		||||
    else
 | 
			
		||||
      name
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def downcased_unique_named
 | 
			
		||||
 | 
			
		||||
@ -266,6 +266,15 @@ class Formula
 | 
			
		||||
    Dir["#{HOMEBREW_REPOSITORY}/Library/Aliases/*"].map{ |f| File.basename f }.sort
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.resolve_alias name
 | 
			
		||||
    aka = HOMEBREW_REPOSITORY+"Library/Aliases/#{name}"
 | 
			
		||||
    if aka.file?
 | 
			
		||||
      aka.realpath.basename('.rb').to_s
 | 
			
		||||
    else
 | 
			
		||||
      name
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def self.factory name
 | 
			
		||||
    return name if name.kind_of? Formula
 | 
			
		||||
    path = Pathname.new(name)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user