diff options
Diffstat (limited to 'src/libstore/store-api.hh')
-rw-r--r-- | src/libstore/store-api.hh | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/libstore/store-api.hh b/src/libstore/store-api.hh index 3764f3e54242..afc7376fe9ff 100644 --- a/src/libstore/store-api.hh +++ b/src/libstore/store-api.hh @@ -100,6 +100,22 @@ typedef list<ValidPathInfo> ValidPathInfos; enum BuildMode { bmNormal, bmRepair, bmCheck }; +struct BuildResult +{ + enum Status { + Success = 0, + PermanentFailure = 1, + TimedOut = 2, + MiscFailure = 3 + } status = MiscFailure; + std::string errorMsg; + //time_t startTime = 0, stopTime = 0; +}; + + +struct BasicDerivation; + + class StoreAPI { public: @@ -194,6 +210,12 @@ public: not derivations, substitute them. */ virtual void buildPaths(const PathSet & paths, BuildMode buildMode = bmNormal) = 0; + /* Build a single non-materialized derivation (i.e. not from an + on-disk .drv file). Note that ‘drvPath’ is only used for + informational purposes. */ + virtual BuildResult buildDerivation(const Path & drvPath, const BasicDerivation & drv, + BuildMode buildMode = bmNormal) = 0; + /* Ensure that a path is valid. If it is not currently valid, it may be made valid by running a substitute (if defined for the path). */ |