B0_zero.Trash
Delete file hierarchies.
Deleting file hierarchies may be slow. This clears a given path by moving it to a trash directory which can be deleted at the end of the build asynchronously.
val make : B0_std.Fpath.t -> t
make dir
is a trash using directory dir
for data storage. dir
may not exist.
val dir : t -> B0_std.Fpath.t
dir t
is the trash's directory (may not exist)
val trash : t -> B0_std.Fpath.t -> (unit, string) Stdlib.result
trash t p
trashes path p
in dir t
. If p
does not exist this has no effect. Note that p
needs to be on the same device as dir t
and that the latter is created if needed.
val delete : block:bool -> t -> (unit, string) Stdlib.result
delete ~block t
deletes t
's trash directory and its content. If block
is true
the operation is synchronous and blocks until the trash is effectively deleted; if false
the operation is spawn as a separate process.
Note. On Windows block:false
relies on cmd.exe
being available.