mirror of
https://github.com/NixOS/nix
synced 2025-07-05 16:31:47 +02:00
Move structured attrs handling into a separate class
This is primarily because Derivation::{can,will}BuildLocally() depends on attributes like preferLocalBuild and requiredSystemFeatures, but it can't handle them properly because it doesn't have access to the structured attributes.
This commit is contained in:
parent
99d4bb2d4c
commit
7ae7a38c9a
5 changed files with 145 additions and 116 deletions
33
src/libstore/parsed-derivations.hh
Normal file
33
src/libstore/parsed-derivations.hh
Normal file
|
@ -0,0 +1,33 @@
|
|||
#include "derivations.hh"
|
||||
|
||||
#include <nlohmann/json.hpp>
|
||||
|
||||
namespace nix {
|
||||
|
||||
class ParsedDerivation
|
||||
{
|
||||
Path drvPath;
|
||||
BasicDerivation & drv;
|
||||
std::experimental::optional<nlohmann::json> structuredAttrs;
|
||||
|
||||
public:
|
||||
|
||||
ParsedDerivation(const Path & drvPath, BasicDerivation & drv);
|
||||
|
||||
const std::experimental::optional<nlohmann::json> & getStructuredAttrs() const
|
||||
{
|
||||
return structuredAttrs;
|
||||
}
|
||||
|
||||
std::experimental::optional<std::string> getStringAttr(const std::string & name) const;
|
||||
|
||||
bool getBoolAttr(const std::string & name, bool def = false) const;
|
||||
|
||||
std::experimental::optional<Strings> getStringsAttr(const std::string & name) const;
|
||||
|
||||
bool canBuildLocally() const;
|
||||
|
||||
bool willBuildLocally() const;
|
||||
};
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue