From d89b3272f441ebdc71d0ffb0448dd1c364f1ca52 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Thu, 23 Aug 2012 12:47:36 -0400 Subject: [PATCH] Ensure mktemp cleans up after itself Ignore interrupts. --- Library/Homebrew/extend/fileutils.rb | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/Library/Homebrew/extend/fileutils.rb b/Library/Homebrew/extend/fileutils.rb index 3558297201..691fbdcd2b 100644 --- a/Library/Homebrew/extend/fileutils.rb +++ b/Library/Homebrew/extend/fileutils.rb @@ -14,16 +14,11 @@ module FileUtils extend self # /tmp volume to the other volume. So we let the user override the tmp # prefix if they need to. tmp_prefix = ENV['HOMEBREW_TEMP'] || '/tmp' - tmp=Pathname.new `/usr/bin/mktemp -d #{tmp_prefix}/homebrew-#{name}-#{version}-XXXX`.strip - raise "Couldn't create build sandbox" if not tmp.directory? or $? != 0 - begin - wd=Dir.pwd - chdir tmp - yield - ensure - chdir wd - tmp.rmtree - end + tmp = Pathname.new(`/usr/bin/mktemp -d #{tmp_prefix}/homebrew-#{name}-#{version}-XXXX`.chomp) + raise "Failed to create sandbox: #{tmp}" unless tmp.directory? + cd(tmp){ yield } + ensure + ignore_interrupts{ tmp.rmtree } if tmp end # A version of mkdir that also changes to that folder in a block.