#include "command.hh" #include "store-api.hh" #include "archive.hh" using namespace nix; struct CmdDumpPath : StorePathCommand { std::string description() override { return "serialise a store path to stdout in NAR format"; } Examples examples() override { return { Example{ "To get a NAR from the binary cache https://cache.nixos.org/:", "nix store dump-path --store https://cache.nixos.org/ /nix/store/7crrmih8c52r8fbnqb933dxrsp44md93-glibc-2.25" }, }; } void run(ref store, const StorePath & storePath) override { FdSink sink(STDOUT_FILENO); store->narFromPath(storePath, sink); sink.flush(); } }; static auto rDumpPath = registerCommand2({"store", "dump-path"}); struct CmdDumpPath2 : Command { Path path; CmdDumpPath2() { expectArgs({ .label = "path", .handler = {&path}, .completer = completePath }); } std::string description() override { return "serialise a path to stdout in NAR format"; } Examples examples() override { return { Example{ "To serialise directory 'foo' as a NAR:", "nix nar dump-path ./foo" }, }; } void run() override { FdSink sink(STDOUT_FILENO); dumpPath(path, sink); sink.flush(); } }; static auto rDumpPath2 = registerCommand2({"nar", "dump-path"});