Pierre Bourdon
d9a46559a4
It is not possible to query output paths for CA derivations since
they're not static / known at eval time. Instead, return JSON nulls for
outputs paths.
This is a partial port of the following Hydra commits:
- 9ba4417940ffdd0fadea43f68c61ef948a4b8d39
- 069b7775c565f5999fe33e8c3f28c7b9306039ca
- fcde5908d8e51f975b883329b34d24a9f30ea4b3
By the following authors:
Co-Authored-By: John Ericson <John.Ericson@Obsidian.Systems>
Co-Authored-By: Théophane Hufschmitt <theophane.hufschmitt@tweag.io>
Co-Authored-By: Alexander Sosedkin <monk@unboiled.info>
Co-Authored-By: Andrea Ciceri <andrea.ciceri@autistici.org>
Co-Authored-By: Charlotte 🦝 Delenk Mlotte@chir.rs>
Co-Authored-By: Sandro Jäckel <sandro.jaeckel@gmail.com>
34 lines
854 B
C++
34 lines
854 B
C++
#include <lix/libexpr/get-drvs.hh>
|
|
#include <lix/libexpr/eval.hh>
|
|
#include <nlohmann/json.hpp>
|
|
#include <nlohmann/json_fwd.hpp>
|
|
#include <string>
|
|
#include <map>
|
|
#include <set>
|
|
#include <string>
|
|
#include <optional>
|
|
|
|
#include "eval-args.hh"
|
|
|
|
class MyArgs;
|
|
|
|
namespace nix {
|
|
class EvalState;
|
|
struct DrvInfo;
|
|
} // namespace nix
|
|
|
|
/* The fields of a derivation that are printed in json form */
|
|
struct Drv {
|
|
std::string name;
|
|
std::string system;
|
|
std::string drvPath;
|
|
|
|
enum class CacheStatus { Cached, Uncached, Unknown } cacheStatus;
|
|
std::map<std::string, std::optional<std::string>> outputs;
|
|
std::map<std::string, std::set<std::string>> inputDrvs;
|
|
std::optional<nlohmann::json> meta;
|
|
|
|
Drv(std::string &attrPath, nix::EvalState &state, nix::DrvInfo &drvInfo, MyArgs &args);
|
|
};
|
|
void to_json(nlohmann::json &json, const Drv &drv);
|