Fix brew list when combining --pinned and --versions
Fixes Homebrew/homebrew#32067 Closes Homebrew/homebrew#32099. Closes Homebrew/homebrew#32134. Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This commit is contained in:
		
							parent
							
								
									b544f3e5f1
								
							
						
					
					
						commit
						8d23a43f12
					
				@ -10,10 +10,8 @@ module Homebrew
 | 
				
			|||||||
    # Things below use the CELLAR, which doesn't until the first formula is installed.
 | 
					    # Things below use the CELLAR, which doesn't until the first formula is installed.
 | 
				
			||||||
    return unless HOMEBREW_CELLAR.exist?
 | 
					    return unless HOMEBREW_CELLAR.exist?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ARGV.include? '--pinned'
 | 
					    if ARGV.include? '--pinned' or ARGV.include? '--versions'
 | 
				
			||||||
      list_pinned
 | 
					      filtered_list
 | 
				
			||||||
    elsif ARGV.include? '--versions'
 | 
					 | 
				
			||||||
      list_versions
 | 
					 | 
				
			||||||
    elsif ARGV.named.empty?
 | 
					    elsif ARGV.named.empty?
 | 
				
			||||||
      ENV['CLICOLOR'] = nil
 | 
					      ENV['CLICOLOR'] = nil
 | 
				
			||||||
      exec 'ls', *ARGV.options_only << HOMEBREW_CELLAR
 | 
					      exec 'ls', *ARGV.options_only << HOMEBREW_CELLAR
 | 
				
			||||||
@ -57,28 +55,29 @@ module Homebrew
 | 
				
			|||||||
    exec 'find', *args
 | 
					    exec 'find', *args
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def list_versions
 | 
					  def filtered_list
 | 
				
			||||||
    if ARGV.named.empty?
 | 
					    names = if ARGV.named.empty?
 | 
				
			||||||
      HOMEBREW_CELLAR.subdirs
 | 
					      HOMEBREW_CELLAR.subdirs
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      ARGV.named.map{ |n| HOMEBREW_CELLAR+n }.select{ |pn| pn.exist? }
 | 
					      ARGV.named.map{ |n| HOMEBREW_CELLAR+n }.select{ |pn| pn.exist? }
 | 
				
			||||||
    end.each do |d|
 | 
					 | 
				
			||||||
      versions = d.subdirs.map { |pn| pn.basename.to_s }
 | 
					 | 
				
			||||||
      next if ARGV.include?('--multiple') && versions.count < 2
 | 
					 | 
				
			||||||
      puts "#{d.basename} #{versions*' '}"
 | 
					 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					    if ARGV.include? '--pinned'
 | 
				
			||||||
 | 
					      pinned_versions = {}
 | 
				
			||||||
  def list_pinned
 | 
					      names.each do |d|
 | 
				
			||||||
    if ARGV.named.empty?
 | 
					        keg_pin = (HOMEBREW_LIBRARY/"PinnedKegs"/d.basename.to_s)
 | 
				
			||||||
      HOMEBREW_CELLAR.subdirs
 | 
					        if keg_pin.exist? or keg_pin.symlink?
 | 
				
			||||||
    else
 | 
					          pinned_versions[d] = keg_pin.readlink.basename.to_s
 | 
				
			||||||
      ARGV.named.map{ |n| HOMEBREW_CELLAR+n }.select{ |pn| pn.exist? }
 | 
					        end
 | 
				
			||||||
    end.select do |d|
 | 
					      end
 | 
				
			||||||
      keg_pin = (HOMEBREW_LIBRARY/"PinnedKegs"/d.basename.to_s)
 | 
					      pinned_versions.each do |d, version|
 | 
				
			||||||
      keg_pin.exist? or keg_pin.symlink?
 | 
					        puts "#{d.basename}".concat(ARGV.include?('--versions') ? " #{version}" : '')
 | 
				
			||||||
    end.each do |d|
 | 
					      end
 | 
				
			||||||
      puts d.basename
 | 
					    else # --versions without --pinned
 | 
				
			||||||
 | 
					      names.each do |d|
 | 
				
			||||||
 | 
					        versions = d.subdirs.map { |pn| pn.basename.to_s }
 | 
				
			||||||
 | 
					        next if ARGV.include?('--multiple') && versions.count < 2
 | 
				
			||||||
 | 
					        puts "#{d.basename} #{versions*' '}"
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user