summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xtool/rbuninstall.rb9
1 files changed, 5 insertions, 4 deletions
diff --git a/tool/rbuninstall.rb b/tool/rbuninstall.rb
index 2a16b8fe43..f0c286012c 100755
--- a/tool/rbuninstall.rb
+++ b/tool/rbuninstall.rb
@@ -23,7 +23,6 @@ BEGIN {
$files = []
}
list = ($_.chomp!('/') ? $dirs : $files)
-$_ = File.join($destdir, $_) if $destdir
list << $_
END {
status = true
@@ -32,6 +31,7 @@ END {
$files.each do |file|
print "rm #{file}#{ors}"
unless $dryrun
+ file = File.join($destdir, file) if $destdir
begin
File.unlink(file)
rescue Errno::ENOENT
@@ -49,13 +49,14 @@ END {
dir = File.dirname(dir) while File.basename(dir) == '.'
print "rmdir #{dir}#{ors}"
unless $dryrun
+ realdir = $destdir ? File.join($destdir, dir) : dir
begin
begin
unlink.delete(dir)
- Dir.rmdir(dir)
+ Dir.rmdir(realdir)
rescue Errno::ENOTDIR
- raise unless File.symlink?(dir)
- File.unlink(dir)
+ raise unless File.symlink?(realdir)
+ File.unlink(realdir)
end
rescue Errno::ENOENT, Errno::ENOTEMPTY
rescue