mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
42 lines
1.5 KiB
Ruby
42 lines
1.5 KiB
Ruby
![]() |
require "hbc/artifact/base"
|
||
|
|
||
|
class Hbc::Artifact::Installer < Hbc::Artifact::Base
|
||
|
# TODO: for backward compatibility, removeme
|
||
|
def install
|
||
|
install_phase
|
||
|
end
|
||
|
|
||
|
# TODO: for backward compatibility, removeme
|
||
|
def uninstall
|
||
|
uninstall_phase
|
||
|
end
|
||
|
|
||
|
def install_phase
|
||
|
@cask.artifacts[self.class.artifact_dsl_key].each do |artifact|
|
||
|
if artifact.manual
|
||
|
puts <<-EOS.undent
|
||
|
To complete the installation of Cask #{@cask}, you must also
|
||
|
run the installer at
|
||
|
|
||
|
'#{@cask.staged_path.join(artifact.manual)}'
|
||
|
|
||
|
EOS
|
||
|
else
|
||
|
executable, script_arguments = self.class.read_script_arguments(artifact.script,
|
||
|
self.class.artifact_dsl_key.to_s,
|
||
|
{ must_succeed: true, sudo: true },
|
||
|
print_stdout: true)
|
||
|
ohai "Running #{self.class.artifact_dsl_key} script #{executable}"
|
||
|
raise Hbc::CaskInvalidError.new(@cask, "#{self.class.artifact_dsl_key} missing executable") if executable.nil?
|
||
|
executable_path = @cask.staged_path.join(executable)
|
||
|
@command.run("/bin/chmod", args: ["--", "+x", executable_path]) if File.exist?(executable_path)
|
||
|
@command.run(executable_path, script_arguments)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def uninstall_phase
|
||
|
odebug "Nothing to do. The #{self.class.artifact_dsl_key} artifact has no uninstall phase."
|
||
|
end
|
||
|
end
|