aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2013-12-14 15:43:15 -0600
committerJack Nagel2013-12-14 15:43:15 -0600
commitd75577a2394b589b9975d5b80b3ccf8223f376a5 (patch)
tree964509c0ac3e799bb30b71c49644ddb86b4fdf0b /Library
parentd7c13f84b62d730389e72cf4283da1863993be5f (diff)
downloadbrew-d75577a2394b589b9975d5b80b3ccf8223f376a5.tar.bz2
bottle: avoid keeping entire `strings` output in memory
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/bottle.rb15
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