diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2016-11-01 23:31:27 +0300 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-11-04 09:26:37 +0200 |
commit | b741291c708e5c2088680a0d9d3c75efd98db421 (patch) | |
tree | 5a21d56b272ddf0895cd0c221aaa9630927e9d21 /build2/filesystem.cxx | |
parent | 675d243e0ddeb627c0881b03e7cd5be746a5a7d3 (diff) |
Make rmdir_r() to call entry_exists(path) rather than exists(dir_path)
Diffstat (limited to 'build2/filesystem.cxx')
-rw-r--r-- | build2/filesystem.cxx | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/build2/filesystem.cxx b/build2/filesystem.cxx index be4cad8..c71d2da 100644 --- a/build2/filesystem.cxx +++ b/build2/filesystem.cxx @@ -79,7 +79,7 @@ namespace build2 if (work.sub (d)) // Don't try to remove working directory. return rmdir_status::not_empty; - if (!exists (d)) + if (!build2::entry_exists (d)) return rmdir_status::not_exist; if (verb >= v) @@ -126,6 +126,20 @@ namespace build2 } bool + entry_exists (const path& p, bool fs) + { + try + { + return butl::entry_exists (p, fs); + } + catch (const system_error& e) + { + error << "unable to stat path " << p << ": " << e.what (); + throw failed (); + } + } + + bool empty (const dir_path& d) { try |