mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-23 14:36:16 +02:00
Add information about which output is active to drvPath's context
This will break things that depend on being able to just strip away an equals sign, so those have to be updated next
This commit is contained in:
parent
ffa038f66d
commit
bf50d6ad32
1 changed files with 6 additions and 4 deletions
|
@ -455,8 +455,8 @@ static void prim_derivationStrict(EvalState & state, Value * * args, Value & v)
|
||||||
drvHashes[drvPath] = hashDerivationModulo(*store, drv);
|
drvHashes[drvPath] = hashDerivationModulo(*store, drv);
|
||||||
|
|
||||||
state.mkAttrs(v, 1 + drv.outputs.size());
|
state.mkAttrs(v, 1 + drv.outputs.size());
|
||||||
mkString(*state.allocAttr(v, state.sDrvPath), drvPath, singleton<PathSet>("=" + drvPath));
|
|
||||||
foreach (DerivationOutputs::iterator, i, drv.outputs) {
|
foreach (DerivationOutputs::iterator, i, drv.outputs) {
|
||||||
|
mkString(*state.allocAttr(v, state.symbols.create(i->first + "DrvPath")), drvPath, singleton<PathSet>("=" + i->first + "=" + drvPath));
|
||||||
/* The output path of an output X is ‘<X>Path’,
|
/* The output path of an output X is ‘<X>Path’,
|
||||||
e.g. ‘outPath’. */
|
e.g. ‘outPath’. */
|
||||||
mkString(*state.allocAttr(v, state.symbols.create(i->first + "Path")),
|
mkString(*state.allocAttr(v, state.symbols.create(i->first + "Path")),
|
||||||
|
@ -1111,11 +1111,13 @@ void EvalState::createBaseEnv()
|
||||||
attrValues = attrs: \
|
attrValues = attrs: \
|
||||||
map (name: builtins.getAttr name attrs) (builtins.attrNames attrs); \
|
map (name: builtins.getAttr name attrs) (builtins.attrNames attrs); \
|
||||||
outputToAttrListElement = output: \
|
outputToAttrListElement = output: \
|
||||||
let outPath = builtins.getAttr (output + \"Path\") strict; in { \
|
let \
|
||||||
|
outPath = builtins.getAttr (output + \"Path\") strict; \
|
||||||
|
drvPath = builtins.getAttr (output + \"DrvPath\") strict; \
|
||||||
|
in { \
|
||||||
name = output; \
|
name = output; \
|
||||||
value = attrs // { \
|
value = attrs // { \
|
||||||
drvPath = strict.drvPath; \
|
inherit outPath drvPath; \
|
||||||
inherit outPath; \
|
|
||||||
type = \"derivation\"; \
|
type = \"derivation\"; \
|
||||||
currentOutput = output; \
|
currentOutput = output; \
|
||||||
} // outputsAttrs // { all = allList; }; \
|
} // outputsAttrs // { all = allList; }; \
|
||||||
|
|
Loading…
Reference in a new issue