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