Record which keg is linked
Will be useful for a variety of reasons, but for now, I'm just using it to ensure install won't install again if something is already installed (use brew upgrade instead). But means that brew switch and that can work properly etc.
This commit is contained in:
		
							parent
							
								
									1f95b07ba5
								
							
						
					
					
						commit
						13918ff6d9
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -7,3 +7,4 @@
 | 
				
			|||||||
!/bin/brew
 | 
					!/bin/brew
 | 
				
			||||||
!/share/man/man1/brew.1
 | 
					!/share/man/man1/brew.1
 | 
				
			||||||
.DS_Store
 | 
					.DS_Store
 | 
				
			||||||
 | 
					/Library/LinkedKegs
 | 
				
			||||||
@ -9,6 +9,12 @@ module Homebrew extend self
 | 
				
			|||||||
      raise "No available formula for #{name}\n#{msg}" if msg
 | 
					      raise "No available formula for #{name}\n#{msg}" if msg
 | 
				
			||||||
    end unless ARGV.force?
 | 
					    end unless ARGV.force?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ARGV.formulae.each do |f|
 | 
				
			||||||
 | 
					      if File.directory? HOMEBREW_REPOSITORY/"Library/LinkedKegs/#{f.name}"
 | 
				
			||||||
 | 
					        raise "#{f} already installed\nTry: brew upgrade #{f}"
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if Process.uid.zero? and not File.stat(HOMEBREW_BREW_FILE).uid.zero?
 | 
					    if Process.uid.zero? and not File.stat(HOMEBREW_BREW_FILE).uid.zero?
 | 
				
			||||||
      # note we only abort if Homebrew is *not* installed as sudo and the user
 | 
					      # note we only abort if Homebrew is *not* installed as sudo and the user
 | 
				
			||||||
      # calls brew as root. The fix is to chown brew to root.
 | 
					      # calls brew as root. The fix is to chown brew to root.
 | 
				
			||||||
 | 
				
			|||||||
@ -33,10 +33,21 @@ class Keg < Pathname
 | 
				
			|||||||
      n+=1
 | 
					      n+=1
 | 
				
			||||||
      Find.prune if src.directory?
 | 
					      Find.prune if src.directory?
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					    linked_keg_record.unlink if linked_keg_record.exist?
 | 
				
			||||||
    n
 | 
					    n
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def fname
 | 
				
			||||||
 | 
					    parent.basename.to_s
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def linked_keg_record
 | 
				
			||||||
 | 
					    @linked_keg_record ||= HOMEBREW_REPOSITORY/"Library/LinkedKegs"/fname
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def link
 | 
					  def link
 | 
				
			||||||
 | 
					    raise "Cannot link #{fname}\nAnother version is already linked: #{linked_keg_record.realpath}" if linked_keg_record.directory?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $n=0
 | 
					    $n=0
 | 
				
			||||||
    $d=0
 | 
					    $d=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -68,6 +79,8 @@ class Keg < Pathname
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    (HOMEBREW_REPOSITORY/"Library/LinkedKegs"/fname).make_relative_symlink(self)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return $n+$d
 | 
					    return $n+$d
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user