18 typedef std::map<std::string, std::optional<StorePath>> Outputs;
23 std::optional<std::optional<StorePath>> drvPath;
24 std::optional<StorePath> outPath;
25 std::string outputName;
33 Bindings * attrs =
nullptr, * meta =
nullptr;
39 void fillOutputs(
EvalState & state,
bool withPaths =
true);
43 const std::string & drvPathWithOutputs,
46 const std::set<std::string> & selectedOutputs
56 static kj::Promise<Result<DrvInfo>>
57 create(
ref<Store> store,
const std::string & drvPathWithOutputs);
60 std::string querySystem(
EvalState & state);
61 std::optional<StorePath> queryDrvPath(
EvalState & state);
64 std::string queryOutputName(
EvalState & state);
71 StringSet queryMetaNames(
EvalState & state);
73 std::string queryMetaString(
EvalState & state,
const std::string & name);
74 NixInt queryMetaInt(
EvalState & state,
const std::string & name, NixInt def);
75 bool queryMetaBool(
EvalState & state,
const std::string & name,
bool def);
76 void setMeta(
EvalState & state,
const std::string & name,
Value * v);
83 void setName(
const std::string & s) { name = s; }
84 void setDrvPath(
StorePath path) { drvPath = {{std::move(path)}}; }
85 void setOutPath(StorePath path) { outPath = {{std::move(path)}}; }
87 void setFailed() { failed =
true; };
88 bool hasFailed() {
return failed; };