mirror of
https://github.com/NixOS/nix
synced 2025-06-25 10:41:16 +02:00
Relax store path canonicalization
This commit is contained in:
parent
b529d91902
commit
1063aa502a
2 changed files with 19 additions and 2 deletions
|
@ -63,7 +63,18 @@ StorePath StorePath::random(std::string_view name)
|
|||
|
||||
StorePath StoreDirConfig::parseStorePath(std::string_view path) const
|
||||
{
|
||||
auto p = canonPath(std::string(path));
|
||||
// On Windows, `/nix/store` is not a canonical path. More broadly it
|
||||
// is unclear whether this function should be using the native
|
||||
// notion of a canonical path at all. For example, it makes to
|
||||
// support remote stores whose store dir is a non-native path (e.g.
|
||||
// Windows <-> Unix ssh-ing).
|
||||
auto p =
|
||||
#ifdef _WIN32
|
||||
path
|
||||
#else
|
||||
canonPath(std::string(path))
|
||||
#endif
|
||||
;
|
||||
if (dirOf(p) != storeDir)
|
||||
throw BadStorePath("path '%s' is not in the Nix store", p);
|
||||
return StorePath(baseNameOf(p));
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue