Defend against unusual Homebrew setups

To aid in Tap transition.  Require Homebrew 0.9.5, rescue
`rename_tags_dir_if_necessary` (`respond_to?` won't work there
because `rename_tags_dir_if_necessary` is a private method.

References: #4192, @Jackiebo in #4096
This commit is contained in:
Roland Walker 2014-05-06 09:37:17 -04:00
parent 1cb825d80c
commit 0153c19f7a
2 changed files with 18 additions and 2 deletions

View file

@ -6,6 +6,7 @@ require 'download_strategy'
# transitional, for set_up_taps (see below)
require 'cmd/update'
require 'rubygems'
require 'cask/artifact'
require 'cask/audit'
@ -65,8 +66,22 @@ class Cask
def self.set_up_taps
odebug 'Initializing Taps'
return true if Cask.default_tap.match(%r{test[^/]*\Z})
# transitional: help with Homebrew's move of Tap dirs, Apr 2014
Homebrew.send(:rename_taps_dir_if_necessary)
minimum_homebrew_version = '0.9.5'
unless Gem::Version.new(HOMEBREW_VERSION) >= Gem::Version.new(minimum_homebrew_version)
raise CaskError.new <<-EOS.undent
Minimum Homebrew version '#{minimum_homebrew_version}' required.
(Homebrew version #{HOMEBREW_VERSION} was detected.)
Try running "brew update".
EOS
end
begin
Homebrew.send(:rename_taps_dir_if_necessary)
rescue StandardError
opoo %q{Trouble with automatic Tap migration. You may need to run "brew update && brew upgrade brew-cask"}
end
# transitional: help with our own move to new GitHub project, May 2014
legacy_user = 'phinze'

View file

@ -38,7 +38,8 @@ Mocha::Integration::MiniTest.activate
# our baby
require 'cask'
# look for casks in testcasks by default
# Look for casks in testcasks by default. It is elsewhere required that
# the string "test" appear in the directory name.
Cask.default_tap = 'caskroom/homebrew-testcasks'
# our own testy caskroom