aboutsummaryrefslogtreecommitdiff
path: root/src/nix/ping-store.cc
diff options
context:
space:
mode:
authorYorick van Pelt <yorick@yorickvanpelt.nl>2023-01-31 13:24:23 +0100
committerYorick van Pelt <yorick@yorickvanpelt.nl>2023-01-31 13:24:23 +0100
commit28648ed78413c9a681501e37473cfebe39bedb1b (patch)
treed212fe11a64d55bf5065558210a0d666ff6a60f4 /src/nix/ping-store.cc
parentc79b1582a7149a01dd4c75adcd689fd533e35e68 (diff)
nix store ping: add --json flag
Diffstat (limited to 'src/nix/ping-store.cc')
-rw-r--r--src/nix/ping-store.cc21
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);
+ }
}
};