replaceDependencies: fix with ca-derivations
Broken in 7a07cc0da9 since that changed
isStorePath to return true for content-addressed paths.
This commit is contained in:
@@ -43,7 +43,7 @@ let
|
||||
inherit (builtins) unsafeDiscardStringContext appendContext;
|
||||
inherit (lib)
|
||||
listToAttrs
|
||||
isStorePath
|
||||
isStringLike
|
||||
readFile
|
||||
attrValues
|
||||
mapAttrs
|
||||
@@ -53,6 +53,16 @@ let
|
||||
;
|
||||
inherit (lib.attrsets) mergeAttrsList;
|
||||
|
||||
isNonCaStorePath =
|
||||
x:
|
||||
if isStringLike x then
|
||||
let
|
||||
str = toString x;
|
||||
in
|
||||
builtins.substring 0 1 str == "/" && (dirOf str == builtins.storeDir)
|
||||
else
|
||||
false;
|
||||
|
||||
toContextlessString = x: unsafeDiscardStringContext (toString x);
|
||||
warn = if verbose then lib.warn else (x: y: y);
|
||||
|
||||
@@ -90,7 +100,7 @@ let
|
||||
|
||||
realisation =
|
||||
drv:
|
||||
if isStorePath drv then
|
||||
if isNonCaStorePath drv then
|
||||
# Input-addressed and fixed-output derivations have their realisation as outPath.
|
||||
toContextlessString drv
|
||||
else
|
||||
|
||||
@@ -12,20 +12,30 @@
|
||||
}:
|
||||
let
|
||||
inherit (lib)
|
||||
isStorePath
|
||||
isStringLike
|
||||
substring
|
||||
stringLength
|
||||
optionalString
|
||||
escapeShellArgs
|
||||
concatMap
|
||||
;
|
||||
|
||||
isNonCaStorePath =
|
||||
x:
|
||||
if isStringLike x then
|
||||
let
|
||||
str = toString x;
|
||||
in
|
||||
builtins.substring 0 1 str == "/" && (dirOf str == builtins.storeDir)
|
||||
else
|
||||
false;
|
||||
in
|
||||
if replacements == [ ] then
|
||||
drv
|
||||
else
|
||||
let
|
||||
drvName =
|
||||
if isStorePath drv then
|
||||
if isNonCaStorePath drv then
|
||||
# Reconstruct the name from the actual store path if available.
|
||||
substring 33 (stringLength (baseNameOf drv)) (baseNameOf drv)
|
||||
else if drv ? drvAttrs.name then
|
||||
|
||||
Reference in New Issue
Block a user