From 28648ed78413c9a681501e37473cfebe39bedb1b Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Tue, 31 Jan 2023 13:24:23 +0100 Subject: nix store ping: add --json flag --- src/nix/ping-store.cc | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'src') 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 + 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) 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); + } } }; -- cgit v1.2.3 From 4f4a6074e41bb635bc35ac14000b11d341536650 Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Tue, 31 Jan 2023 15:10:39 +0100 Subject: nix store ping: try to print json if connect() fails aswell --- src/nix/ping-store.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/nix/ping-store.cc b/src/nix/ping-store.cc index 0d7a75075..5c44510ab 100644 --- a/src/nix/ping-store.cc +++ b/src/nix/ping-store.cc @@ -1,6 +1,7 @@ #include "command.hh" #include "shared.hh" #include "store-api.hh" +#include "finally.hh" #include @@ -29,11 +30,13 @@ struct CmdPingStore : StoreCommand, MixJSON notice("Version: %s", *version); } else { nlohmann::json res; + Finally printRes([&]() { + logger->cout("%s", res); + }); res["url"] = store->getUri(); store->connect(); if (auto version = store->getVersion()) res["version"] = *version; - logger->cout("%s", res); } } }; -- cgit v1.2.3