Add Homebrew’s bin to PATH for Cask installers.

This commit is contained in:
Markus Reiter 2018-02-13 18:49:01 +01:00
parent c09a0972e5
commit 102a2a491b
2 changed files with 5 additions and 8 deletions

View File

@ -23,7 +23,7 @@ module Hbc
def install_phase(command: nil, **_)
ohai "Running #{self.class.dsl_key} script '#{path.relative_path_from(cask.staged_path)}'"
FileUtils.chmod "+x", path unless path.executable?
command.run(path, **args)
command.run(path, **args, path: PATH.new(HOMEBREW_PREFIX/"bin", HOMEBREW_PREFIX/"sbin", ENV["PATH"]))
end
end

View File

@ -37,7 +37,7 @@ module Hbc
result
end
def initialize(executable, args: [], sudo: false, input: [], print_stdout: false, print_stderr: true, must_succeed: false, **options)
def initialize(executable, args: [], sudo: false, input: [], print_stdout: false, print_stderr: true, must_succeed: false, path: ENV["PATH"], **options)
@executable = executable
@args = args
@sudo = sudo
@ -47,6 +47,7 @@ module Hbc
@must_succeed = must_succeed
options.extend(HashValidator).assert_valid_keys(:chdir)
@options = options
@path = path
end
def command
@ -55,7 +56,7 @@ module Hbc
private
attr_reader :executable, :args, :input, :options, :processed_output, :processed_status
attr_reader :executable, :args, :input, :options, :processed_output, :processed_status, :path
attr_predicate :sudo?, :print_stdout?, :print_stderr?, :must_succeed?
@ -83,12 +84,8 @@ module Hbc
def each_output_line(&b)
executable, *args = expanded_command
unless File.exist?(executable)
executable = which(executable, PATH.new(ENV["PATH"], HOMEBREW_PREFIX/"bin"))
end
raw_stdin, raw_stdout, raw_stderr, raw_wait_thr =
Open3.popen3([executable, executable], *args, **options)
Open3.popen3({ "PATH" => path }, executable, *args, **options)
write_input_to(raw_stdin)
raw_stdin.close_write