diff --git a/src/hydra-eval-jobs/hydra-eval-jobs.cc b/src/hydra-eval-jobs/hydra-eval-jobs.cc index c5f6f3a3..7fadef71 100644 --- a/src/hydra-eval-jobs/hydra-eval-jobs.cc +++ b/src/hydra-eval-jobs/hydra-eval-jobs.cc @@ -253,16 +253,29 @@ int main(int argc, char * * argv) EvalState state(searchPath); AutoArgs autoArgs; + Value * inputsSet = state.allocValue(); + state.mkAttrs(*inputsSet, autoArgs_.size()); for (auto & i : autoArgs_) { + Symbol inputName = state.symbols.create(i.first); + bool first = true; for (auto & j : i.second) { Value * v = state.allocValue(); if (j[0] == 'E') state.eval(state.parseExprFromString(string(j, 1), absPath(".")), *v); else mkString(*v, string(j, 1)); - autoArgs[state.symbols.create(i.first)].push_back(v); + autoArgs[inputName].push_back(v); + if (first) { + inputsSet->attrs->push_back(Attr(inputName, v)); + first = false; + } } } + Symbol sInputs = state.symbols.create("inputs"); + if (autoArgs.find(sInputs) == autoArgs.end()) { + inputsSet->attrs->sort(); + autoArgs[sInputs].push_back(inputsSet); + } store = openStore(); diff --git a/src/lib/Hydra/Helper/AddBuilds.pm b/src/lib/Hydra/Helper/AddBuilds.pm index 70fb96f4..e4fe3c40 100644 --- a/src/lib/Hydra/Helper/AddBuilds.pm +++ b/src/lib/Hydra/Helper/AddBuilds.pm @@ -261,6 +261,8 @@ sub buildInputToString { ")"; } else { $result = "{ outPath = builtins.storePath " . $input->{storePath} . "" . + "; inputType = \"" . $input->{type} . "\"" . + (defined $input->{uri} ? "; uri = \"" . $input->{uri} . "\"" : "") . (defined $input->{revNumber} ? "; rev = " . $input->{revNumber} . "" : "") . (defined $input->{revision} ? "; rev = \"" . $input->{revision} . "\"" : "") . (defined $input->{revCount} ? "; revCount = " . $input->{revCount} . "" : "") . diff --git a/src/root/common.tt b/src/root/common.tt index dafae8aa..6acea0c6 100644 --- a/src/root/common.tt +++ b/src/root/common.tt @@ -277,7 +277,13 @@ BLOCK renderDiffUri; url = res.0; branch = res.1; IF bi1.type == "hg" || bi1.type == "git" %] - [% contents %] + [% contents %] [% ELSE; contents; END;