mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2024-11-25 07:16:17 +02:00
* Fix the build hook mechanism; pass the pointer graph to the hook.
This commit is contained in:
parent
52bf9b86bb
commit
581fc47783
3 changed files with 27 additions and 5 deletions
|
@ -769,15 +769,20 @@ DerivationGoal::HookReply DerivationGoal::tryBuildHook()
|
|||
|
||||
/* Write the information that the hook needs to perform the
|
||||
build, i.e., the set of input paths, the set of output
|
||||
paths, and [!!!]. */
|
||||
paths, and the references (pointer graph) in the input
|
||||
paths. */
|
||||
|
||||
Path inputListFN = tmpDir + "/inputs";
|
||||
Path outputListFN = tmpDir + "/outputs";
|
||||
Path referencesFN = tmpDir + "/references";
|
||||
|
||||
string s;
|
||||
for (PathSet::iterator i = inputPaths.begin();
|
||||
i != inputPaths.end(); ++i)
|
||||
s += *i + "\n";
|
||||
for (DerivationInputs::iterator i = drv.inputDrvs.begin();
|
||||
i != drv.inputDrvs.end(); ++i)
|
||||
s += i->first + "\n";
|
||||
writeStringToFile(inputListFN, s);
|
||||
|
||||
s = "";
|
||||
|
@ -785,7 +790,24 @@ DerivationGoal::HookReply DerivationGoal::tryBuildHook()
|
|||
i != drv.outputs.end(); ++i)
|
||||
s += i->second.path + "\n";
|
||||
writeStringToFile(outputListFN, s);
|
||||
|
||||
|
||||
s = "";
|
||||
for (PathSet::iterator i = inputPaths.begin();
|
||||
i != inputPaths.end(); ++i)
|
||||
{
|
||||
s += *i;
|
||||
PathSet references;
|
||||
queryReferences(*i, references);
|
||||
for (PathSet::iterator j = references.begin();
|
||||
j != references.end(); ++j)
|
||||
{
|
||||
s += " ";
|
||||
s += *j;
|
||||
}
|
||||
s += "\n";
|
||||
}
|
||||
writeStringToFile(referencesFN, s);
|
||||
|
||||
/* Tell the hook to proceed. */
|
||||
writeLine(toHook.writeSide, "okay");
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
#! /bin/sh
|
||||
|
||||
set -x
|
||||
#set -x
|
||||
|
||||
drv=$4
|
||||
|
||||
echo "HOOK for $drv" >&2
|
||||
|
||||
outPath=$(sed 's/Derive(\[\"\([^\"]*\)\".*/\1/' $drv)
|
||||
outPath=$(sed 's/Derive(\[("out",\"\([^\"]*\)\".*/\1/' $drv)
|
||||
|
||||
echo "output path is $outPath" >&2
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ storeExpr=$($TOP/src/nix-instantiate/nix-instantiate build-hook.nix)
|
|||
|
||||
echo "store expr is $storeExpr"
|
||||
|
||||
outPath=$($TOP/src/nix-store/nix-store -qnfvvvvv "$storeExpr")
|
||||
outPath=$($TOP/src/nix-store/nix-store -quf "$storeExpr")
|
||||
|
||||
echo "output path is $outPath"
|
||||
|
||||
|
|
Loading…
Reference in a new issue