diff options
| author | Josh Hagins | 2016-10-12 11:37:34 -0400 |
|---|---|---|
| committer | Josh Hagins | 2016-10-12 11:53:06 -0400 |
| commit | 24c2d0b3c2f7955f8efca4017c5cc08ede540b06 (patch) | |
| tree | 2c2f08dc403a4196a831c3d9cd04d843821c19b4 /Library/Homebrew | |
| parent | dc4ab8fd26691ad19b3a639a58062280abbacb0e (diff) | |
| download | brew-24c2d0b3c2f7955f8efca4017c5cc08ede540b06.tar.bz2 | |
keg_relocate: fix for multiline /usr/bin/file output
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/keg_relocate.rb | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/Library/Homebrew/keg_relocate.rb b/Library/Homebrew/keg_relocate.rb index 47e24cb16..ab037da98 100644 --- a/Library/Homebrew/keg_relocate.rb +++ b/Library/Homebrew/keg_relocate.rb @@ -72,7 +72,7 @@ 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 - files = path.find.reject { |pn| + files = Set.new path.find.reject { |pn| next true if pn.symlink? next true if pn.directory? next true if Metafiles::EXTENSIONS.include?(pn.extname) @@ -82,11 +82,14 @@ class Keg end false } - 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] + output, _status = Open3.capture2("/usr/bin/xargs -0 /usr/bin/file --no-dereference --print0", + stdin_data: files.to_a.join("\0")) + output.each_line do |line| + path, info = line.split("\0") + next unless info.to_s.include?("text") + path = Pathname.new(path) + next unless files.include?(path) + text_files << path end end |
