From 3bd4349e8ebfd44ce99beea90a8244ed8da33e8a Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Mon, 6 Mar 2017 21:28:34 +0100 Subject: Migrate legacy Caskroom. --- Library/Homebrew/compat/hbc.rb | 2 ++ Library/Homebrew/compat/hbc/caskroom.rb | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+) (limited to 'Library/Homebrew/compat') 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? -- cgit v1.2.3