Unverified Commit 7a07cc0d authored by Mikael Voss's avatar Mikael Voss
Browse files

lib/strings: allow CA paths in isStorePath

parent 46c7edcc
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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 content‐addressed 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;

+10 −0
Original line number Diff line number Diff line
@@ -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;