diff options
Diffstat (limited to 'tool/rbuninstall.rb')
-rwxr-xr-x | tool/rbuninstall.rb | 9 |
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 |