diff options
Diffstat (limited to 'third_party/nix/src/nix/eval.cc')
-rw-r--r-- | third_party/nix/src/nix/eval.cc | 56 |
1 files changed, 0 insertions, 56 deletions
diff --git a/third_party/nix/src/nix/eval.cc b/third_party/nix/src/nix/eval.cc deleted file mode 100644 index 72fcbd82717d..000000000000 --- a/third_party/nix/src/nix/eval.cc +++ /dev/null @@ -1,56 +0,0 @@ -#include "libexpr/eval.hh" - -#include "libexpr/value-to-json.hh" -#include "libmain/common-args.hh" -#include "libmain/shared.hh" -#include "libstore/store-api.hh" -#include "libutil/json.hh" -#include "nix/command.hh" - -namespace nix { -struct CmdEval final : MixJSON, InstallableCommand { - bool raw = false; - - CmdEval() { mkFlag(0, "raw", "print strings unquoted", &raw); } - - std::string name() override { return "eval"; } - - std::string description() override { return "evaluate a Nix expression"; } - - Examples examples() override { - return { - Example{"To evaluate a Nix expression given on the command line:", - "nix eval '(1 + 2)'"}, - Example{"To evaluate a Nix expression from a file or URI:", - "nix eval -f channel:nixos-17.09 hello.name"}, - Example{"To get the current version of Nixpkgs:", - "nix eval --raw nixpkgs.lib.nixpkgsVersion"}, - Example{"To print the store path of the Hello package:", - "nix eval --raw nixpkgs.hello"}, - }; - } - - void run(ref<Store> store) override { - if (raw && json) { - throw UsageError("--raw and --json are mutually exclusive"); - } - - auto state = getEvalState(); - - auto v = installable->toValue(*state); - PathSet context; - - if (raw) { - std::cout << state->coerceToString(noPos, *v, context); - } else if (json) { - JSONPlaceholder jsonOut(std::cout); - printValueAsJSON(*state, true, *v, jsonOut, context); - } else { - state->forceValueDeep(*v); - std::cout << *v << "\n"; - } - } -}; -} // namespace nix - -static nix::RegisterCommand r1(nix::make_ref<nix::CmdEval>()); |