Merge pull request #2359 from ilovezfs/migrator-allow-new-cellar-to-exist-already
migrator: allow new cellar to exist already
This commit is contained in:
commit
54abadb202
@ -147,15 +147,25 @@ class Migrator
|
|||||||
end
|
end
|
||||||
|
|
||||||
def migrate
|
def migrate
|
||||||
if new_cellar.exist?
|
if old_cellar.exist? && new_cellar.exist?
|
||||||
onoe "#{new_cellar} already exists; remove it manually and run brew migrate #{oldname}."
|
conflicted = false
|
||||||
|
old_cellar.each_child do |c|
|
||||||
|
if (new_cellar/c.basename).exist?
|
||||||
|
conflicted = true
|
||||||
|
onoe "#{new_cellar/c.basename} already exists."
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if conflicted
|
||||||
|
onoe "Remove #{new_cellar} manually and run brew migrate #{oldname}."
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
begin
|
begin
|
||||||
oh1 "Migrating #{Formatter.identifier(oldname)} to #{Formatter.identifier(newname)}"
|
oh1 "Migrating #{Formatter.identifier(oldname)} to #{Formatter.identifier(newname)}"
|
||||||
lock
|
lock
|
||||||
unlink_oldname
|
unlink_oldname
|
||||||
|
unlink_newname if new_cellar.exist?
|
||||||
move_to_new_directory
|
move_to_new_directory
|
||||||
repin
|
repin
|
||||||
link_oldname_cellar
|
link_oldname_cellar
|
||||||
@ -178,8 +188,12 @@ class Migrator
|
|||||||
# move everything from Cellar/oldname to Cellar/newname
|
# move everything from Cellar/oldname to Cellar/newname
|
||||||
def move_to_new_directory
|
def move_to_new_directory
|
||||||
puts "Moving to: #{new_cellar}"
|
puts "Moving to: #{new_cellar}"
|
||||||
|
if new_cellar.exist?
|
||||||
|
FileUtils.mv(old_cellar.children, new_cellar)
|
||||||
|
else
|
||||||
FileUtils.mv(old_cellar, new_cellar)
|
FileUtils.mv(old_cellar, new_cellar)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def repin
|
def repin
|
||||||
return unless pinned?
|
return unless pinned?
|
||||||
@ -207,6 +221,14 @@ class Migrator
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def unlink_newname
|
||||||
|
oh1 "Unlinking #{Formatter.identifier(newname)}"
|
||||||
|
new_cellar.subdirs.each do |d|
|
||||||
|
keg = Keg.new(d)
|
||||||
|
keg.unlink
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def link_newname
|
def link_newname
|
||||||
oh1 "Linking #{Formatter.identifier(newname)}"
|
oh1 "Linking #{Formatter.identifier(newname)}"
|
||||||
new_keg = Keg.new(new_linked_keg_record)
|
new_keg = Keg.new(new_linked_keg_record)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user