From d94ad002526f0e4b515417644027e54717c4c5e8 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Tue, 31 May 2022 16:14:20 +0900 Subject: [PATCH] Report non-empty directories [ci skip] No longer used or generated files/directories sometimes remain unremoved. --- tool/rbuninstall.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/tool/rbuninstall.rb b/tool/rbuninstall.rb index 79a6aaa92c5044..60f5241a4f58e3 100755 --- a/tool/rbuninstall.rb +++ b/tool/rbuninstall.rb @@ -63,6 +63,7 @@ def message(str = nil) $dirs.each do |dir| unlink[dir] = true end + nonempty = {} while dir = $dirs.pop dir = File.dirname(dir) while File.basename(dir) == '.' message "rmdir #{dir}" @@ -76,16 +77,23 @@ def message(str = nil) raise unless File.symlink?(realdir) File.unlink(realdir) end - rescue Errno::ENOENT, Errno::ENOTEMPTY + rescue Errno::ENOTEMPTY + nonempty[dir] = true + rescue Errno::ENOENT rescue status = false puts $! else + nonempty.delete(dir) parent = File.dirname(dir) $dirs.push(parent) unless parent == dir or unlink[parent] end end end message + unless nonempty.empty? + puts "Non empty director#{nonempty.size == 1 ? 'y' : 'ies'}:" + nonempty.each_key {|dir| print " #{dir}\n"} + end exit(status) }