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 060244f04f
commit 39804c8cde

View file

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