1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #pragma once
- #include "types.hh"
- #include "hash.hh"
- #include <map>
- namespace nix {
- const string drvExtension = ".drv";
- struct DerivationOutput
- {
- Path path;
- string hashAlgo;
- string hash;
- DerivationOutput()
- {
- }
- DerivationOutput(Path path, string hashAlgo, string hash)
- {
- this->path = path;
- this->hashAlgo = hashAlgo;
- this->hash = hash;
- }
- void parseHashInfo(bool & recursive, HashType & hashType, Hash & hash) const;
- };
- typedef std::map<string, DerivationOutput> DerivationOutputs;
- typedef std::map<Path, StringSet> DerivationInputs;
- typedef std::map<string, string> StringPairs;
- struct Derivation
- {
- DerivationOutputs outputs;
- DerivationInputs inputDrvs;
- PathSet inputSrcs;
- string platform;
- Path builder;
- Strings args;
- StringPairs env;
- };
- class StoreAPI;
- Path writeDerivation(StoreAPI & store,
- const Derivation & drv, const string & name, bool repair = false);
- Derivation readDerivation(const Path & drvPath);
- string unparseDerivation(const Derivation & drv);
- bool isDerivation(const string & fileName);
- bool isFixedOutputDrv(const Derivation & drv);
- Hash hashDerivationModulo(StoreAPI & store, Derivation drv);
- typedef std::map<Path, Hash> DrvHashes;
- extern DrvHashes drvHashes;
- typedef std::pair<string, std::set<string> > DrvPathWithOutputs;
- DrvPathWithOutputs parseDrvPathWithOutputs(const string & s);
- Path makeDrvPathWithOutputs(const Path & drvPath, const std::set<string> & outputs);
- bool wantOutput(const string & output, const std::set<string> & wanted);
- PathSet outputPaths(const Derivation & drv);
- }
|