diff options
author | Yorick van Pelt <yorick@yorickvanpelt.nl> | 2023-01-31 13:24:23 +0100 |
---|---|---|
committer | Yorick van Pelt <yorick@yorickvanpelt.nl> | 2023-01-31 13:24:23 +0100 |
commit | 28648ed78413c9a681501e37473cfebe39bedb1b (patch) | |
tree | d212fe11a64d55bf5065558210a0d666ff6a60f4 /src/nix/ping-store.cc | |
parent | c79b1582a7149a01dd4c75adcd689fd533e35e68 (diff) |
nix store ping: add --json flag
Diffstat (limited to 'src/nix/ping-store.cc')
-rw-r--r-- | src/nix/ping-store.cc | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/nix/ping-store.cc b/src/nix/ping-store.cc index 3c3b7bb45..0d7a75075 100644 --- a/src/nix/ping-store.cc +++ b/src/nix/ping-store.cc @@ -2,9 +2,11 @@ #include "shared.hh" #include "store-api.hh" +#include <nlohmann/json.hpp> + using namespace nix; -struct CmdPingStore : StoreCommand +struct CmdPingStore : StoreCommand, MixJSON { std::string description() override { @@ -20,10 +22,19 @@ struct CmdPingStore : StoreCommand void run(ref<Store> store) override { - notice("Store URL: %s", store->getUri()); - store->connect(); - if (auto version = store->getVersion()) - notice("Version: %s", *version); + if (!json) { + notice("Store URL: %s", store->getUri()); + store->connect(); + if (auto version = store->getVersion()) + notice("Version: %s", *version); + } else { + nlohmann::json res; + res["url"] = store->getUri(); + store->connect(); + if (auto version = store->getVersion()) + res["version"] = *version; + logger->cout("%s", res); + } } }; |