homebrew-cask-versions/lib/cask/exceptions.rb
Roland Walker 05690689bc Remove homebrew-fork Checksum class and refactor
* perform actual checksum calculation within download.rb
* use an accessor named sha256 instead of sums for checksum data
* migrate checksum-specific exceptions out of homebrew-fork
2014-12-23 11:08:45 -05:00

127 lines
2.3 KiB
Ruby

class CaskError < RuntimeError; end
class CaskNotInstalledError < CaskError
attr_reader :token
def initialize(token)
@token = token
end
def to_s
"#{token} is not installed"
end
end
class CaskUnavailableError < CaskError
attr_reader :token
def initialize(token)
@token = token
end
def to_s
"No available Cask for #{token}"
end
end
class CaskAlreadyCreatedError < CaskError
attr_reader :token
def initialize(token)
@token = token
end
def to_s
%Q{A Cask for #{token} already exists. Run "brew cask cat #{token}" to see it.}
end
end
class CaskAlreadyInstalledError < CaskError
attr_reader :token
def initialize(token)
@token = token
end
def to_s
%Q{A Cask for #{token} is already installed. Add the "--force" option to force re-install.}
end
end
class CaskCommandFailedError < CaskError
def initialize(cmd, output, status)
@cmd = cmd
@output = output
@status = status
end
def to_s;
<<-EOS
Command failed to execute!
==> Failed command:
#{@cmd}
==> Output of failed command:
#{@output}
==> Exit status of failed command:
#{@status.inspect}
EOS
end
end
class CaskX11DependencyError < CaskError
attr_reader :token
def initialize(token)
@token = token
end
def to_s
<<-EOS.undent
#{token} requires XQuartz/X11, which can be installed via homebrew-cask by
brew cask install xquartz
or manually, by downloading the package from
http://xquartz.macosforge.org
EOS
end
end
class CaskUnspecifiedError < CaskError
def to_s
"This command requires a Cask token"
end
end
class CaskInvalidError < CaskError
attr_reader :token, :submsg
def initialize(token, *submsg)
@token = token
@submsg = submsg.join(' ')
end
def to_s
"Cask '#{token}' definition is invalid" + (submsg.length > 0 ? ": #{submsg}" : '')
end
end
class CaskSha256MissingError < ArgumentError
end
class CaskSha256MismatchError < RuntimeError
attr_reader :path, :expected, :actual
def initialize(path, expected, actual)
@path = path
@expected = expected
@actual = actual
end
def to_s
<<-EOS.undent
sha256 mismatch
Expected: #{expected}
Actual: #{actual}
File: #{path}
To retry an incomplete download, remove the file above.
EOS
end
end