diff options
| author | Josh Hagins | 2016-10-10 21:46:19 -0400 |
|---|---|---|
| committer | Josh Hagins | 2016-10-11 21:19:08 -0400 |
| commit | d8a6863283048cd2cc1f7fb78178b2fc19420e0c (patch) | |
| tree | c7f6fd3a78707265ec83f0001cb4bea78930b1e5 /Library/Homebrew | |
| parent | 4a1dddf5279b605043c5bcb02114aa4f9ee2042b (diff) | |
| download | brew-d8a6863283048cd2cc1f7fb78178b2fc19420e0c.tar.bz2 | |
keg_relocate: use xargs to batch file arguments
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/keg_relocate.rb | 15 |
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 |
