From 1e55c1f580a2207f909884b43c16a2550b7c229e Mon Sep 17 00:00:00 2001 From: Max Howell Date: Sun, 25 Mar 2012 13:08:58 +0100 Subject: [PATCH] Fix `brew unlink` Whoops. --- Library/Homebrew/keg.rb | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Library/Homebrew/keg.rb b/Library/Homebrew/keg.rb index b7914224e3..e0eba14cb8 100644 --- a/Library/Homebrew/keg.rb +++ b/Library/Homebrew/keg.rb @@ -30,14 +30,16 @@ class Keg < Pathname def unlink n=0 %w[bin etc lib include sbin share var].map{ |d| self/d }.each do |src| - next if src == self - dst=HOMEBREW_PREFIX+src.relative_path_from(self) - next unless dst.symlink? - dst.uninstall_info if dst.to_s =~ INFOFILE_RX and ENV['HOMEBREW_KEEP_INFO'] - dst.unlink - dst.parent.rmdir_if_possible - n+=1 - Find.prune if src.directory? + src.find do |src| + next if src == self + dst=HOMEBREW_PREFIX+src.relative_path_from(self) + next unless dst.symlink? + dst.uninstall_info if dst.to_s =~ INFOFILE_RX and ENV['HOMEBREW_KEEP_INFO'] + dst.unlink + dst.parent.rmdir_if_possible + n+=1 + Find.prune if src.directory? + end end linked_keg_record.unlink if linked_keg_record.exist? n