Safety feature for Path.rm_rf
This commit is contained in:
parent
08b33331ea
commit
47d54854e4
|
@ -489,6 +489,10 @@ let rm_rf =
|
||||||
Unix.rmdir dir
|
Unix.rmdir dir
|
||||||
in
|
in
|
||||||
fun t ->
|
fun t ->
|
||||||
|
if not (is_local t) then (
|
||||||
|
Exn.code_error "Path.rm_rf called on external dir"
|
||||||
|
["t", sexp_of_t t]
|
||||||
|
);
|
||||||
let fn = to_string t in
|
let fn = to_string t in
|
||||||
match Unix.lstat fn with
|
match Unix.lstat fn with
|
||||||
| exception Unix.Unix_error(ENOENT, _, _) -> ()
|
| exception Unix.Unix_error(ENOENT, _, _) -> ()
|
||||||
|
|
|
@ -161,5 +161,8 @@ Path.append (Path.of_string "/root") (Path.relative Path.build_dir "foo")
|
||||||
|
|
||||||
Path.rm_rf (Path.of_string "/does/not/exist/foo/bar/baz")
|
Path.rm_rf (Path.of_string "/does/not/exist/foo/bar/baz")
|
||||||
[%%expect{|
|
[%%expect{|
|
||||||
- : unit = ()
|
Exception: Stdune__Exn.Code_error <abstr>.
|
||||||
|
Raised at file "src/stdune/exn.ml", line 30, characters 37-131
|
||||||
|
Called from file "src/stdune/path.ml", line 496, characters 4-127
|
||||||
|
Called from file "toplevel/toploop.ml", line 180, characters 17-56
|
||||||
|}]
|
|}]
|
||||||
|
|
Loading…
Reference in New Issue