Keg#unlink: use ObserverPathnameExtension

#link was using the extension but #unlink wasn't, so the counting
criteria were potentially different and `brew unlink` was ignoring
--verbose.
This commit is contained in:
Misty De Meo 2012-10-04 14:15:16 -05:00
parent a1f6f590d2
commit 0f2fe4a61b

View File

@ -27,13 +27,16 @@ class Keg < Pathname
end end
def unlink def unlink
n=0 # these are used by the ObserverPathnameExtension to count the number
# of files and directories linked
$n=$d=0
%w[bin etc lib include sbin share var].map{ |d| self/d }.each do |src| %w[bin etc lib include sbin share var].map{ |d| self/d }.each do |src|
next unless src.exist? next unless src.exist?
src.find do |src| src.find do |src|
next if src == self next if src == self
dst=HOMEBREW_PREFIX+src.relative_path_from(self) dst=HOMEBREW_PREFIX+src.relative_path_from(self)
dst.extend ObserverPathnameExtension
# check whether the file to be unlinked is from the current keg first # check whether the file to be unlinked is from the current keg first
if !dst.symlink? || !dst.exist? || src != dst.resolved_path if !dst.symlink? || !dst.exist? || src != dst.resolved_path
@ -43,12 +46,11 @@ class Keg < Pathname
dst.uninstall_info if dst.to_s =~ INFOFILE_RX and ENV['HOMEBREW_KEEP_INFO'] dst.uninstall_info if dst.to_s =~ INFOFILE_RX and ENV['HOMEBREW_KEEP_INFO']
dst.unlink dst.unlink
dst.parent.rmdir_if_possible dst.parent.rmdir_if_possible
n+=1
Find.prune if src.directory? Find.prune if src.directory?
end end
end end
linked_keg_record.unlink if linked_keg_record.symlink? linked_keg_record.unlink if linked_keg_record.symlink?
n $n+$d
end end
def fname def fname
@ -84,8 +86,6 @@ class Keg < Pathname
def link mode=nil def link mode=nil
raise "Cannot link #{fname}\nAnother version is already linked: #{linked_keg_record.realpath}" if linked_keg_record.directory? raise "Cannot link #{fname}\nAnother version is already linked: #{linked_keg_record.realpath}" if linked_keg_record.directory?
# these are used by the ObserverPathnameExtension to count the number
# of files and directories linked
$n=0 $n=0
$d=0 $d=0