1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-25 02:21:16 +02:00

symlink_exists: wrap exceptions into nix exception

(cherry picked from commit 779687854f)
This commit is contained in:
Jörg Thalheim 2025-04-02 21:22:43 +02:00 committed by Jörg Thalheim
parent c972cbd2bb
commit d73ed6f310
2 changed files with 13 additions and 4 deletions

View file

@ -31,7 +31,17 @@
namespace nix {
namespace fs { using namespace std::filesystem; }
namespace fs {
using namespace std::filesystem;
bool symlink_exists(const std::filesystem::path & path) {
try {
return std::filesystem::exists(std::filesystem::symlink_status(path));
} catch (const std::filesystem::filesystem_error & e) {
throw SysError("cannot check existence of %1%", path);
}
}
}
bool isAbsolute(PathView path)
{

View file

@ -134,6 +134,7 @@ bool pathExists(const Path & path);
namespace fs {
/**
* TODO: we may actually want to use pathExists instead of this function
* ```
* symlink_exists(p) = std::filesystem::exists(std::filesystem::symlink_status(p))
* ```
@ -142,9 +143,7 @@ namespace fs {
* std::filesystem::exists(p) = std::filesystem::exists(std::filesystem::status(p))
* ```
*/
inline bool symlink_exists(const std::filesystem::path & path) {
return std::filesystem::exists(std::filesystem::symlink_status(path));
}
bool symlink_exists(const std::filesystem::path & path);
} // namespace fs