aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorMarkus Reiter2017-12-03 08:15:22 +0100
committerGitHub2017-12-03 08:15:22 +0100
commitc1b85a6f9d9fd8d46afdcc9488c320d39fcb275d (patch)
treea336ad3debe04507906d0d400641f70afbc5f0d4 /Library
parent780e86904beff771e9f7e90fa9e53dd9dc4aeeaf (diff)
parent36c0dbfe13d6185d34a35a1a386d95a3a4046a30 (diff)
downloadbrew-c1b85a6f9d9fd8d46afdcc9488c320d39fcb275d.tar.bz2
Merge pull request #3514 from reitermarkus/system_command
Fix SystemCommand escaping … again.
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cask/lib/hbc/cli.rb2
-rw-r--r--Library/Homebrew/cask/lib/hbc/container/cab.rb2
-rw-r--r--Library/Homebrew/cask/lib/hbc/container/generic_unar.rb10
-rw-r--r--Library/Homebrew/cask/lib/hbc/container/gpg.rb2
-rw-r--r--Library/Homebrew/cask/lib/hbc/container/lzma.rb2
-rw-r--r--Library/Homebrew/cask/lib/hbc/container/xz.rb2
-rw-r--r--Library/Homebrew/cask/lib/hbc/system_command.rb14
-rw-r--r--Library/Homebrew/compat/hbc.rb1
-rw-r--r--Library/Homebrew/compat/hbc/system_command.rb18
-rw-r--r--Library/Homebrew/formula.rb2
10 files changed, 19 insertions, 36 deletions
diff --git a/Library/Homebrew/cask/lib/hbc/cli.rb b/Library/Homebrew/cask/lib/hbc/cli.rb
index e2deb6f67..7197303a8 100644
--- a/Library/Homebrew/cask/lib/hbc/cli.rb
+++ b/Library/Homebrew/cask/lib/hbc/cli.rb
@@ -96,7 +96,7 @@ module Hbc
if command.respond_to?(:run)
# usual case: built-in command verb
command.run(*args)
- elsif require?(which("brewcask-#{command}.rb"))
+ elsif require?(which("brewcask-#{command}.rb"), ENV["HOMEBREW_PATH"])
# external command as Ruby library on PATH, Homebrew-style
elsif command.to_s.include?("/") && require?(command.to_s)
# external command as Ruby library with literal path, useful
diff --git a/Library/Homebrew/cask/lib/hbc/container/cab.rb b/Library/Homebrew/cask/lib/hbc/container/cab.rb
index 010fccbc4..327aece6e 100644
--- a/Library/Homebrew/cask/lib/hbc/container/cab.rb
+++ b/Library/Homebrew/cask/lib/hbc/container/cab.rb
@@ -10,7 +10,7 @@ module Hbc
end
def extract
- if (cabextract = which("cabextract")).nil?
+ unless cabextract = which("cabextract", PATH.new(ENV["PATH"], HOMEBREW_PREFIX/"bin"))
raise CaskError, "Expected to find cabextract executable. Cask '#{@cask}' must add: depends_on formula: 'cabextract'"
end
diff --git a/Library/Homebrew/cask/lib/hbc/container/generic_unar.rb b/Library/Homebrew/cask/lib/hbc/container/generic_unar.rb
index 7a465e12e..63ab917ea 100644
--- a/Library/Homebrew/cask/lib/hbc/container/generic_unar.rb
+++ b/Library/Homebrew/cask/lib/hbc/container/generic_unar.rb
@@ -6,14 +6,14 @@ module Hbc
class Container
class GenericUnar < Base
def self.me?(criteria)
- !(lsar = which("lsar")).nil? &&
- criteria.command.run(lsar,
- args: ["-l", "-t", "--", criteria.path],
- print_stderr: false).stdout.chomp.end_with?("passed, 0 failed.")
+ return false unless lsar = which("lsar", PATH.new(ENV["PATH"], HOMEBREW_PREFIX/"bin"))
+ criteria.command.run(lsar,
+ args: ["-l", "-t", "--", criteria.path],
+ print_stderr: false).stdout.chomp.end_with?("passed, 0 failed.")
end
def extract
- if (unar = which("unar")).nil?
+ unless unar = which("unar", PATH.new(ENV["PATH"], HOMEBREW_PREFIX/"bin"))
raise CaskError, "Expected to find unar executable. Cask #{@cask} must add: depends_on formula: 'unar'"
end
diff --git a/Library/Homebrew/cask/lib/hbc/container/gpg.rb b/Library/Homebrew/cask/lib/hbc/container/gpg.rb
index 3f37b5aa6..09c75468a 100644
--- a/Library/Homebrew/cask/lib/hbc/container/gpg.rb
+++ b/Library/Homebrew/cask/lib/hbc/container/gpg.rb
@@ -24,7 +24,7 @@ module Hbc
end
def extract
- if (gpg = which("gpg")).nil?
+ unless gpg = which("gpg", PATH.new(ENV["PATH"], HOMEBREW_PREFIX/"bin"))
raise CaskError, "Expected to find gpg executable. Cask '#{@cask}' must add: depends_on formula: 'gpg'"
end
diff --git a/Library/Homebrew/cask/lib/hbc/container/lzma.rb b/Library/Homebrew/cask/lib/hbc/container/lzma.rb
index 1221acfbc..1e165ba2a 100644
--- a/Library/Homebrew/cask/lib/hbc/container/lzma.rb
+++ b/Library/Homebrew/cask/lib/hbc/container/lzma.rb
@@ -10,7 +10,7 @@ module Hbc
end
def extract
- if (unlzma = which("unlzma")).nil?
+ unless unlzma = which("unlzma", PATH.new(ENV["PATH"], HOMEBREW_PREFIX/"bin"))
raise CaskError, "Expected to find unlzma executable. Cask '#{@cask}' must add: depends_on formula: 'lzma'"
end
diff --git a/Library/Homebrew/cask/lib/hbc/container/xz.rb b/Library/Homebrew/cask/lib/hbc/container/xz.rb
index cd9f9aee2..4086ae188 100644
--- a/Library/Homebrew/cask/lib/hbc/container/xz.rb
+++ b/Library/Homebrew/cask/lib/hbc/container/xz.rb
@@ -10,7 +10,7 @@ module Hbc
end
def extract
- if (unxz = which("unxz")).nil?
+ unless unxz = which("unxz", PATH.new(ENV["PATH"], HOMEBREW_PREFIX/"bin"))
raise CaskError, "Expected to find unxz executable. Cask '#{@cask}' must add: depends_on formula: 'xz'"
end
diff --git a/Library/Homebrew/cask/lib/hbc/system_command.rb b/Library/Homebrew/cask/lib/hbc/system_command.rb
index f64d85c07..a890c42e4 100644
--- a/Library/Homebrew/cask/lib/hbc/system_command.rb
+++ b/Library/Homebrew/cask/lib/hbc/system_command.rb
@@ -50,11 +50,7 @@ module Hbc
end
def command
- @command ||= if sudo?
- [*sudo_prefix, executable, *args]
- else
- [Shellwords.shellescape(executable), *args]
- end
+ [*sudo_prefix, executable, *args]
end
private
@@ -85,8 +81,14 @@ module Hbc
end
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(*expanded_command, **options)
+ Open3.popen3([executable, executable], *args, **options)
write_input_to(raw_stdin)
raw_stdin.close_write
diff --git a/Library/Homebrew/compat/hbc.rb b/Library/Homebrew/compat/hbc.rb
index ebf8a9874..608d46e37 100644
--- a/Library/Homebrew/compat/hbc.rb
+++ b/Library/Homebrew/compat/hbc.rb
@@ -4,7 +4,6 @@ require "compat/hbc/cache"
require "compat/hbc/caskroom"
require "compat/hbc/cli"
require "compat/hbc/dsl"
-require "compat/hbc/system_command"
module Hbc
class << self
diff --git a/Library/Homebrew/compat/hbc/system_command.rb b/Library/Homebrew/compat/hbc/system_command.rb
deleted file mode 100644
index bb9187db3..000000000
--- a/Library/Homebrew/compat/hbc/system_command.rb
+++ /dev/null
@@ -1,18 +0,0 @@
-require "shellwords"
-
-module SystemCommandCompatibilityLayer
- def initialize(executable, args: [], **options)
- if args.empty? && !File.exist?(executable)
- odeprecated "`system_command` with a shell string", "`system_command` with the `args` parameter"
- executable, *args = Shellwords.shellsplit(executable)
- end
-
- super(executable, args: args, **options)
- end
-end
-
-module Hbc
- class SystemCommand
- prepend SystemCommandCompatibilityLayer
- end
-end
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb
index 4ac66ffc4..f3b6c1db1 100644
--- a/Library/Homebrew/formula.rb
+++ b/Library/Homebrew/formula.rb
@@ -1622,7 +1622,7 @@ class Formula
TEMP: HOMEBREW_TEMP,
TMP: HOMEBREW_TEMP,
TERM: "dumb",
- PATH: PATH.new(ENV["PATH"]).append(HOMEBREW_PREFIX/"bin"),
+ PATH: PATH.new(ENV["PATH"], HOMEBREW_PREFIX/"bin"),
HOMEBREW_PATH: nil,
_JAVA_OPTIONS: "#{ENV["_JAVA_OPTIONS"]} -Duser.home=#{HOMEBREW_CACHE}/java_cache",
}