global-functions: $RmDir: work around restrictions in new file handling

This commit is contained in:
Christian Hesse 2025-05-30 21:38:26 +02:00
parent e14e94162a
commit b930137999

View file

@ -1048,21 +1048,23 @@
$LogPrint debug $0 ("Removing directory: ". $DirName);
:if ([ :len [ /file/find where name=$DirName type!=directory ] ] > 0) do={
$LogPrint error $0 ("Directory '" . $DirName . "' is not a directory.");
:return false;
}
:local Dir [ /file/find where name=$DirName type=directory ];
:if ([ :len $Dir ] = 0) do={
:local DirVal;
:do {
:set DirVal [ /file/get $DirName ];
} on-error={
$LogPrint debug $0 ("... which does not exist.");
:return true;
}
:if ($DirVal->"type" != "directory") do={
$LogPrint error $0 ("Directory '" . $DirName . "' is not a directory.");
:return false;
}
:onerror Err {
/file/remove $Dir;
/file/remove $DirName;
} do={
$LogPrint error $0 ("Removing directory '" . $DirName . "' (" . $Dir . ") failed: " . $Err);
$LogPrint error $0 ("Removing directory '" . $DirName . "' failed: " . $Err);
:return false;
}
:return true;