nix-super/src/libstore/parsed-derivations.hh

50 lines
1.1 KiB
C++
Raw Normal View History

2020-10-06 11:18:44 +03:00
#pragma once
///@file
2020-10-06 11:18:44 +03:00
#include "derivations.hh"
#include "store-api.hh"
2020-03-24 15:26:13 +02:00
#include <nlohmann/json_fwd.hpp>
namespace nix {
class ParsedDerivation
{
StorePath drvPath;
BasicDerivation & drv;
2020-03-24 15:26:13 +02:00
std::unique_ptr<nlohmann::json> structuredAttrs;
public:
ParsedDerivation(const StorePath & drvPath, BasicDerivation & drv);
2020-03-24 15:26:13 +02:00
~ParsedDerivation();
const nlohmann::json * getStructuredAttrs() const
{
2020-03-24 15:26:13 +02:00
return structuredAttrs.get();
}
2019-02-12 14:43:32 +02:00
std::optional<std::string> getStringAttr(const std::string & name) const;
bool getBoolAttr(const std::string & name, bool def = false) const;
2019-02-12 14:43:32 +02:00
std::optional<Strings> getStringsAttr(const std::string & name) const;
StringSet getRequiredSystemFeatures() const;
bool canBuildLocally(Store & localStore) const;
bool willBuildLocally(Store & localStore) const;
bool substitutesAllowed() const;
bool useUidRange() const;
std::optional<nlohmann::json> prepareStructuredAttrs(Store & store, const StorePathSet & inputPaths);
};
2021-07-12 18:17:13 +03:00
std::string writeStructuredAttrsShell(const nlohmann::json & json);
}