From d8a6863283048cd2cc1f7fb78178b2fc19420e0c Mon Sep 17 00:00:00 2001
From: Josh Hagins <hagins.josh@gmail.com>
Date: Mon, 10 Oct 2016 21:46:19 -0400
Subject: [PATCH] keg_relocate: use xargs to batch file arguments

---
 Library/Homebrew/keg_relocate.rb | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/Library/Homebrew/keg_relocate.rb b/Library/Homebrew/keg_relocate.rb
index 3f0f4c8ed4..dcf592ae42 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
 
-- 
GitLab