Replace files atomically when relocating, take two
This commit is contained in:
		
							parent
							
								
									0c99e64851
								
							
						
					
					
						commit
						ad7911bb75
					
				@ -38,16 +38,14 @@ class Keg
 | 
				
			|||||||
      end
 | 
					      end
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    (pkgconfig_files | libtool_files | script_files).each do |file|
 | 
					    files = pkgconfig_files | libtool_files | script_files
 | 
				
			||||||
      file.ensure_writable do
 | 
					
 | 
				
			||||||
        file.open('rb') do |f|
 | 
					    files.group_by { |f| f.stat.ino }.each_value do |first, *rest|
 | 
				
			||||||
          s = f.read
 | 
					      s = first.open("rb", &:read)
 | 
				
			||||||
          s.gsub!(old_cellar, new_cellar)
 | 
					      s.gsub!(old_cellar, new_cellar)
 | 
				
			||||||
          s.gsub!(old_prefix, new_prefix)
 | 
					      s.gsub!(old_prefix, new_prefix)
 | 
				
			||||||
          f.reopen(file, 'wb')
 | 
					      first.atomic_write(s)
 | 
				
			||||||
          f.write(s)
 | 
					      rest.each { |file| FileUtils.ln(first, file, :force => true) }
 | 
				
			||||||
        end
 | 
					 | 
				
			||||||
      end
 | 
					 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user