diff options
| author | Max Howell | 2010-01-13 05:37:58 +0000 |
|---|---|---|
| committer | Max Howell | 2010-01-13 11:23:15 +0000 |
| commit | 158598f04929e5ad423df7489ea1246c8b642311 (patch) | |
| tree | f1d39127c2626f7e2abc0244fb7652a198f965d2 /Library | |
| parent | 9f1fdecae7023977d86717c49458630ba8993b1b (diff) | |
| download | homebrew-158598f04929e5ad423df7489ea1246c8b642311.tar.bz2 | |
Escape any spaces in path during strip step
Not using path.basename for mktemp due to risk of bugs due to incorrect escaping. But mainly, mktemp gives a unique name and this operation is procedural.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/brew.h.rb | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Library/Homebrew/brew.h.rb b/Library/Homebrew/brew.h.rb index 32688d64c..f11448d21 100644 --- a/Library/Homebrew/brew.h.rb +++ b/Library/Homebrew/brew.h.rb @@ -442,11 +442,13 @@ private puts "strip #{path}" if ARGV.verbose? path.chmod 0644 # so we can strip unless path.stat.nlink > 1 - `strip #{args} #{path}` + system "strip", *(args+path) else + path = path.to_s.gsub ' ', '\\ ' + # strip unlinks the file and recreates it, thus breaking hard links! # is this expected behaviour? patch does it too… still, this fixes it - tmp = `/usr/bin/mktemp -t #{path.basename}`.chomp + tmp = `/usr/bin/mktemp -t homebrew_strip`.chomp `/usr/bin/strip #{args} -o #{tmp} #{path}` `/bin/cat #{tmp} > #{path}` File.unlink tmp |
