mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
147 lines
3.2 KiB
Ruby
147 lines
3.2 KiB
Ruby
![]() |
class Hbc::CaskError < RuntimeError; end
|
||
|
|
||
|
class Hbc::AbstractCaskErrorWithToken < Hbc::CaskError
|
||
|
attr_reader :token
|
||
|
|
||
|
def initialize(token)
|
||
|
@token = token
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Hbc::CaskNotInstalledError < Hbc::AbstractCaskErrorWithToken
|
||
|
def to_s
|
||
|
"#{token} is not installed"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Hbc::CaskUnavailableError < Hbc::AbstractCaskErrorWithToken
|
||
|
def to_s
|
||
|
"No available Cask for #{token}"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Hbc::CaskAlreadyCreatedError < Hbc::AbstractCaskErrorWithToken
|
||
|
def to_s
|
||
|
%Q{A Cask for #{token} already exists. Run "brew cask cat #{token}" to see it.}
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Hbc::CaskAlreadyInstalledError < Hbc::AbstractCaskErrorWithToken
|
||
|
def to_s
|
||
|
%Q{A Cask for #{token} is already installed. Add the "--force" option to force re-install.}
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Hbc::CaskAutoUpdatesError < Hbc::AbstractCaskErrorWithToken
|
||
|
def to_s
|
||
|
%Q{A Cask for #{token} is already installed and using auto-updates. Add the "--force" option to force re-install.}
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Hbc::CaskCommandFailedError < Hbc::CaskError
|
||
|
def initialize(cmd, stdout, stderr, status)
|
||
|
@cmd = cmd
|
||
|
@stdout = stdout
|
||
|
@stderr = stderr
|
||
|
@status = status
|
||
|
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
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Hbc::CaskX11DependencyError < Hbc::AbstractCaskErrorWithToken
|
||
|
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
|
||
|
|
||
|
https://www.xquartz.org/
|
||
|
EOS
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Hbc::CaskCyclicCaskDependencyError < Hbc::AbstractCaskErrorWithToken
|
||
|
def to_s
|
||
|
"Cask '#{token}' includes cyclic dependencies on other Casks and could not be installed."
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Hbc::CaskUnspecifiedError < Hbc::CaskError
|
||
|
def to_s
|
||
|
"This command requires a Cask token"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Hbc::CaskInvalidError < Hbc::AbstractCaskErrorWithToken
|
||
|
attr_reader :submsg
|
||
|
def initialize(token, *submsg)
|
||
|
super(token)
|
||
|
@submsg = submsg.join(" ")
|
||
|
end
|
||
|
|
||
|
def to_s
|
||
|
"Cask '#{token}' definition is invalid" + (!submsg.empty? ? ": #{submsg}" : "")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Hbc::CaskTokenDoesNotMatchError < Hbc::CaskInvalidError
|
||
|
def initialize(token, header_token)
|
||
|
super(token, "Bad header line: '#{header_token}' does not match file name")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class Hbc::CaskSha256MissingError < ArgumentError
|
||
|
end
|
||
|
|
||
|
class Hbc::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
|
||
|
|
||
|
class Hbc::CaskNoShasumError < Hbc::CaskError
|
||
|
attr_reader :token
|
||
|
def initialize(token)
|
||
|
@token = token
|
||
|
end
|
||
|
|
||
|
def to_s
|
||
|
<<-EOS.undent
|
||
|
Cask '#{token}' does not have a sha256 checksum defined and was not installed.
|
||
|
This means you have the "--require-sha" option set, perhaps in your HOMEBREW_CASK_OPTS.
|
||
|
EOS
|
||
|
end
|
||
|
end
|