Merge pull request #1207 from reitermarkus/cask-already-installed-warning

Change `A Cask for #{token} is already installed.` message.
This commit is contained in:
Markus Reiter 2016-10-06 12:56:39 +02:00 committed by GitHub
commit 7e70ebd4f1
5 changed files with 39 additions and 25 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
@ -48,21 +65,19 @@ module Hbc
end
def to_s
<<-EOS
Command failed to execute!
==> Failed command:
#{@cmd}
==> Standard Output of failed command:
#{@stdout}
==> Standard Error of failed command:
#{@stderr}
==> Exit status of failed command:
#{@status.inspect}
EOS
s = "Command failed to execute!\n"
s.concat("\n")
s.concat("==> Failed command:\n")
s.concat(@cmd).concat("\n")
s.concat("\n")
s.concat("==> Standard Output of failed command:\n")
s.concat(@stdout).concat("\n")
s.concat("\n")
s.concat("==> Standard Error of failed command:\n")
s.concat(@stderr).concat("\n")
s.concat("\n")
s.concat("==> Exit status of failed command:\n")
s.concat(@status.inspect).concat("\n")
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

@ -29,7 +29,7 @@ describe Hbc::CLI::Install do
TestHelper.must_output(self, lambda {
Hbc::CLI::Install.run("local-transmission", "")
}, %r{Warning: A Cask for local-transmission is already installed. Add the "--force" option to force re-install.})
}, %r{Warning: A Cask for local-transmission is already installed.})
end
it "allows double install with --force" do

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