aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Hagins2016-10-10 21:46:19 -0400
committerJosh Hagins2016-10-11 21:19:08 -0400
commitd8a6863283048cd2cc1f7fb78178b2fc19420e0c (patch)
treec7f6fd3a78707265ec83f0001cb4bea78930b1e5
parent4a1dddf5279b605043c5bcb02114aa4f9ee2042b (diff)
downloadbrew-d8a6863283048cd2cc1f7fb78178b2fc19420e0c.tar.bz2
keg_relocate: use xargs to batch file arguments
-rw-r--r--Library/Homebrew/keg_relocate.rb15
1 files changed, 8 insertions, 7 deletions
diff --git a/Library/Homebrew/keg_relocate.rb b/Library/Homebrew/keg_relocate.rb
index 3f0f4c8ed..dcf592ae4 100644
--- a/Library/Homebrew/keg_relocate.rb
+++ b/Library/Homebrew/keg_relocate.rb
@@ -72,13 +72,14 @@ class Keg
# file with that fix is only available in macOS Sierra.
# http://bugs.gw.com/view.php?id=292
with_custom_locale("C") do
- path.find do |pn|
- next if pn.symlink? || pn.directory?
- next if Metafiles::EXTENSIONS.include? pn.extname
- if Utils.popen_read("/usr/bin/file", "--brief", pn).include?("text") ||
- pn.text_executable?
- text_files << pn
- end
+ files = path.find.reject { |pn|
+ pn.symlink? || pn.directory? || Metafiles::EXTENSIONS.include?(pn.extname)
+ }
+ output, _status = Open3.capture2("/usr/bin/xargs -0 /usr/bin/file --no-dereference --brief",
+ stdin_data: files.join("\0"))
+ output.each_line.with_index do |line, i|
+ next unless line.include?("text")
+ text_files << files[i]
end
end