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

Merge pull request #12906 from NixOS/mergify/bp/2.28-maintenance/pr-12886

symlink_exists: wrap exceptions into nix exception (backport #12886)
This commit is contained in:
Jörg Thalheim 2025-04-03 10:28:22 +02:00 committed by GitHub
commit ddfb268ff5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 13 additions and 4 deletions

View file

@ -31,7 +31,17 @@
namespace nix { 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) bool isAbsolute(PathView path)
{ {

View file

@ -134,6 +134,7 @@ bool pathExists(const Path & path);
namespace fs { 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)) * 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)) * std::filesystem::exists(p) = std::filesystem::exists(std::filesystem::status(p))
* ``` * ```
*/ */
inline bool symlink_exists(const std::filesystem::path & path) { bool symlink_exists(const std::filesystem::path & path);
return std::filesystem::exists(std::filesystem::symlink_status(path));
}
} // namespace fs } // namespace fs