Use eval around "rmtree" and use our own version of rmtree if it fails

This commit is contained in:
msvensson@pilot.(none) 2007-09-01 11:41:38 +02:00
parent ac5309cb04
commit c5ea7b0641

View file

@ -206,22 +206,15 @@ sub mtr_copy_dir($$) {
sub mtr_rmtree($) {
my ($dir)= @_;
my $need_file_find= 0;
mtr_verbose("mtr_rmtree: $dir");
{
# Try to use File::Path::rmtree. Recent versions
# handles removal of directories and files that don't
# have full permissions, while older versions
# may have a problem with that and we use our own version
# Try to use File::Path::rmtree. Recent versions
# handles removal of directories and files that don't
# have full permissions, while older versions
# may have a problem with that and we use our own version
local $SIG{__WARN__}= sub {
$need_file_find= 1;
mtr_warning($_[0]);
};
rmtree($dir);
}
if ( $need_file_find ) {
eval { rmtree($dir); };
if ( $@ ) {
mtr_warning("rmtree($dir) failed, trying with File::Find...");
my $errors= 0;