Change A Cask for #{token} is already installed. message.

This commit is contained in:
Markus Reiter 2016-10-01 23:18:13 +02:00
parent 564fa8867d
commit 082bd5e98a
4 changed files with 25 additions and 9 deletions

View File

@ -27,7 +27,7 @@ module Hbc
rescue CaskAlreadyInstalledError => e
opoo e.message
count += 1
rescue CaskAutoUpdatesError => e
rescue CaskAlreadyInstalledAutoUpdatesError => e
opoo e.message
count += 1
rescue CaskUnavailableError => e

View File

@ -29,13 +29,30 @@ module Hbc
class CaskAlreadyInstalledError < AbstractCaskErrorWithToken
def to_s
%Q{A Cask for #{token} is already installed. Add the "--force" option to force re-install.}
s = <<-EOS.undent
A Cask for #{token} is already installed.
EOS
s.concat("\n").concat(reinstall_message)
end
private
def reinstall_message
<<-EOS.undent
To re-install #{token}, run:
brew cask uninstall --force #{token}; brew cask install #{token}
EOS
end
end
class CaskAutoUpdatesError < AbstractCaskErrorWithToken
class CaskAlreadyInstalledAutoUpdatesError < CaskAlreadyInstalledError
def to_s
%Q{A Cask for #{token} is already installed and using auto-updates. Add the "--force" option to force re-install.}
s = <<-EOS.undent
A Cask for #{token} is already installed and using auto-updates.
EOS
s.concat("\n").concat(reinstall_message)
end
end

View File

@ -58,12 +58,11 @@ module Hbc
def install
odebug "Hbc::Installer.install"
if @cask.installed? && @cask.auto_updates && !force
raise CaskAutoUpdatesError, @cask
if @cask.installed? && !force
raise CaskAlreadyInstalledAutoUpdatesError, @cask if @cask.auto_updates
raise CaskAlreadyInstalledError, @cask
end
raise CaskAlreadyInstalledError, @cask if @cask.installed? && !force
print_caveats
begin

View File

@ -272,7 +272,7 @@ describe Hbc::Installer do
lambda {
installer.install
}.must_raise(Hbc::CaskAutoUpdatesError)
}.must_raise(Hbc::CaskAlreadyInstalledAutoUpdatesError)
end
it "allows already-installed Casks which auto-update to be installed if force is provided" do