diff options
| -rwxr-xr-x | Library/Homebrew/build.rb | 6 | ||||
| -rw-r--r-- | Library/Homebrew/formula_installer.rb | 19 |
2 files changed, 16 insertions, 9 deletions
diff --git a/Library/Homebrew/build.rb b/Library/Homebrew/build.rb index 5a7fee4fa..894c6b4e9 100755 --- a/Library/Homebrew/build.rb +++ b/Library/Homebrew/build.rb @@ -111,10 +111,4 @@ def install f end end end -rescue Exception - if f.prefix.directory? - f.prefix.rmtree - f.rack.rmdir_if_possible - end - raise end diff --git a/Library/Homebrew/formula_installer.rb b/Library/Homebrew/formula_installer.rb index 949fbdcc4..97ab036f6 100644 --- a/Library/Homebrew/formula_installer.rb +++ b/Library/Homebrew/formula_installer.rb @@ -119,7 +119,7 @@ class FormulaInstaller clean end - raise "Nothing was installed to #{f.prefix}" unless f.installed? + opoo "Nothing was installed to #{f.prefix}" unless f.installed? end def install_dependency dep @@ -240,10 +240,23 @@ class FormulaInstaller data = read.read raise Marshal.load(data) unless data.nil? or data.empty? raise "Suspicious installation failure" unless $?.success? + end + + # This is the installation receipt. The reason this comment is necessary + # is because some numpty decided to call the class Tab rather than + # the far more appropriate InstallationReceipt :P + Tab.for_install(f, args).write - # Write an installation receipt (a Tab) to the prefix - Tab.for_install(f, args).write if f.installed? + rescue Exception => e + ignore_interrupts do + # any exceptions must leave us with nothing installed + if f.prefix.directory? + puts "One sec, just cleaning up..." if e.kind_of? Interrupt + f.prefix.rmtree + end + f.rack.rmdir_if_possible end + raise end def link |
