Migrate legacy Caskroom.

This commit is contained in:
Markus Reiter 2017-03-06 21:28:34 +01:00
parent 7a8d782365
commit 3bd4349e8e
6 changed files with 33 additions and 35 deletions

View File

@ -1,6 +1,6 @@
module Hbc; end
require "hardware"
require "utils"
require "hbc/artifact"
require "hbc/audit"
require "hbc/auditor"
@ -34,7 +34,6 @@ require "hbc/url_checker"
require "hbc/utils"
require "hbc/verify"
require "hbc/version"
require "utils"
module Hbc
include Locations

View File

@ -83,7 +83,7 @@ module Hbc
end
def self.needs_init?
false
true
end
end
end

View File

@ -7,35 +7,10 @@ module Hbc
end
module ClassMethods
def legacy_caskroom
@legacy_caskroom ||= Pathname.new("/opt/homebrew-cask/Caskroom")
end
def default_caskroom
@default_caskroom ||= HOMEBREW_PREFIX.join("Caskroom")
end
attr_writer :caskroom
def caskroom
@caskroom ||= begin
if Utils.path_occupied?(legacy_caskroom)
opoo <<-EOS.undent
The default Caskroom location has moved to #{default_caskroom}.
Please migrate your Casks to the new location and delete #{legacy_caskroom},
or if you would like to keep your Caskroom at #{legacy_caskroom}, add the
following to your HOMEBREW_CASK_OPTS:
--caskroom=#{legacy_caskroom}
For more details on each of those options, see https://github.com/caskroom/homebrew-cask/issues/21913.
EOS
legacy_caskroom
else
default_caskroom
end
end
@caskroom ||= HOMEBREW_PREFIX.join("Caskroom")
end
attr_writer :cache

View File

@ -29,11 +29,8 @@ module Hbc
end
def user_agent
if @user_agent == :fake
FAKE_USER_AGENT
else
return FAKE_USER_AGENT if @user_agent == :fake
@user_agent
end
end
end
end

View File

@ -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

View File

@ -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?