diff options
| author | Jack Nagel | 2013-12-14 15:43:15 -0600 |
|---|---|---|
| committer | Jack Nagel | 2013-12-14 15:43:15 -0600 |
| commit | d75577a2394b589b9975d5b80b3ccf8223f376a5 (patch) | |
| tree | 964509c0ac3e799bb30b71c49644ddb86b4fdf0b /Library | |
| parent | d7c13f84b62d730389e72cf4283da1863993be5f (diff) | |
| download | brew-d75577a2394b589b9975d5b80b3ccf8223f376a5.tar.bz2 | |
bottle: avoid keeping entire `strings` output in memory
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/cmd/bottle.rb | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/Library/Homebrew/cmd/bottle.rb b/Library/Homebrew/cmd/bottle.rb index 1e5ec4ba3..efdc63a1d 100644 --- a/Library/Homebrew/cmd/bottle.rb +++ b/Library/Homebrew/cmd/bottle.rb @@ -86,12 +86,17 @@ module Homebrew extend self end # Use strings to search through the file for each string - strings = `strings -t x - "#{file}"`.split("\n").select{ |str| str.include? string } + IO.popen("strings -t x - '#{file}'") do |io| + until io.eof? + str = io.readline.chomp - strings.each do |str| - offset, match = str.split(" ", 2) - next if linked_libraries.include? match # Don't bother reporting a string if it was found by otool - puts " #{Tty.gray}-->#{Tty.reset} match '#{match}' at offset #{Tty.em}0x#{offset}#{Tty.reset}" + next unless str.include? string + + offset, match = str.split(" ", 2) + + next if linked_libraries.include? match # Don't bother reporting a string if it was found by otool + puts " #{Tty.gray}-->#{Tty.reset} match '#{match}' at offset #{Tty.em}0x#{offset}#{Tty.reset}" + end end end puts |
