1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-06-09 09:36:20 +09:00

lib/strings: allow CA paths in isStorePath

This commit is contained in:
Mikael Voss 2025-03-05 13:08:41 +01:00
parent 46c7edcc07
commit 7a07cc0da9
No known key found for this signature in database
2 changed files with 17 additions and 1 deletions

View file

@ -2434,7 +2434,13 @@ rec {
if isStringLike x then
let str = toString x; in
substring 0 1 str == "/"
&& dirOf str == storeDir
&& (dirOf str == storeDir
# Match contentaddressed derivations, which _currently_ do not have a
# store directory prefix.
# This is a workaround for https://github.com/NixOS/nix/issues/12361
# which was needed during the experimental phase of ca-derivations and
# should be removed once the issue has been resolved.
|| builtins.match "/[0-9a-z]{52}" str != null)
else
false;

View file

@ -537,6 +537,7 @@ runTests {
expr =
let goodPath =
"${builtins.storeDir}/d945ibfx9x185xf04b890y4f9g3cbb63-python-2.7.11";
goodCAPath = "/1121rp0gvr1qya7hvy925g5kjwg66acz6sn1ra1hca09f1z5dsab";
in {
storePath = isStorePath goodPath;
storePathDerivation = isStorePath (import ../.. { system = "x86_64-linux"; }).hello;
@ -545,6 +546,12 @@ runTests {
nonAbsolute = isStorePath (concatStrings (tail (stringToCharacters goodPath)));
asPath = isStorePath (/. + goodPath);
otherPath = isStorePath "/something/else";
caPath = isStorePath goodCAPath;
caPathAppendix = isStorePath
"${goodCAPath}/bin/python";
caAsPath = isStorePath (/. + goodCAPath);
otherVals = {
attrset = isStorePath {};
list = isStorePath [];
@ -557,6 +564,9 @@ runTests {
storePathAppendix = false;
nonAbsolute = false;
asPath = true;
caPath = true;
caPathAppendix = false;
caAsPath = true;
otherPath = false;
otherVals = {
attrset = false;