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