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

This commit is contained in:
Christian Hesse 2025-05-30 21:41:34 +02:00
parent 39804c8cde
commit 2f435d964f

View file

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