aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/compat
diff options
context:
space:
mode:
authorMarkus Reiter2017-03-06 21:28:34 +0100
committerMarkus Reiter2017-03-12 00:35:09 +0100
commit3bd4349e8ebfd44ce99beea90a8244ed8da33e8a (patch)
tree41b10d5a60388069eacb9da644fc50da28da504b /Library/Homebrew/compat
parent7a8d782365b615e066bead9b4829f6fce7f375df (diff)
downloadbrew-3bd4349e8ebfd44ce99beea90a8244ed8da33e8a.tar.bz2
Migrate legacy Caskroom.
Diffstat (limited to 'Library/Homebrew/compat')
-rw-r--r--Library/Homebrew/compat/hbc.rb2
-rw-r--r--Library/Homebrew/compat/hbc/caskroom.rb25
2 files changed, 27 insertions, 0 deletions
diff --git a/Library/Homebrew/compat/hbc.rb b/Library/Homebrew/compat/hbc.rb
index e60bdbc07..353a72488 100644
--- a/Library/Homebrew/compat/hbc.rb
+++ b/Library/Homebrew/compat/hbc.rb
@@ -9,7 +9,9 @@ module Hbc
Module.new do
def init
Cache.delete_legacy_cache
+
Caskroom.migrate_caskroom_from_repo_to_prefix
+ Caskroom.migrate_legacy_caskroom
super
end
diff --git a/Library/Homebrew/compat/hbc/caskroom.rb b/Library/Homebrew/compat/hbc/caskroom.rb
index 489c5b224..3621a35fb 100644
--- a/Library/Homebrew/compat/hbc/caskroom.rb
+++ b/Library/Homebrew/compat/hbc/caskroom.rb
@@ -2,6 +2,31 @@ module Hbc
module Caskroom
module_function
+ def migrate_legacy_caskroom
+ return if Hbc.caskroom.exist?
+
+ legacy_caskroom = Pathname.new("/opt/homebrew-cask/Caskroom")
+ return if Hbc.caskroom == legacy_caskroom
+ return unless legacy_caskroom.exist?
+ return if legacy_caskroom.symlink?
+
+ ohai "Migrating Caskroom from #{legacy_caskroom} to #{Hbc.caskroom}."
+ if Hbc.caskroom.parent.writable?
+ FileUtils.mv legacy_caskroom, Hbc.caskroom
+ else
+ opoo "#{Hbc.caskroom.parent} is not writable, sudo is needed to move the Caskroom."
+ SystemCommand.run("/bin/mv", args: [legacy_caskroom, Hbc.caskroom.parent], sudo: true)
+ end
+
+ ohai "Creating symlink from #{Hbc.caskroom} to #{legacy_caskroom}."
+ if legacy_caskroom.parent.writable?
+ FileUtils.ln_s Hbc.caskroom, legacy_caskroom
+ else
+ opoo "#{legacy_caskroom.parent} is not writable, sudo is needed to link the Caskroom."
+ SystemCommand.run("/bin/ln", args: ["-s", Hbc.caskroom, legacy_caskroom], sudo: true)
+ end
+ end
+
def migrate_caskroom_from_repo_to_prefix
repo_caskroom = HOMEBREW_REPOSITORY.join("Caskroom")
return if Hbc.caskroom.exist?