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:
parent
a1f6f590d2
commit
0f2fe4a61b
@ -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
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user