Skip to content

Commit

Permalink
Merge pull request #7723 from yorickvP/nix-store-ping-json
Browse files Browse the repository at this point in the history
nix store ping: add --json flag
  • Loading branch information
edolstra authored Feb 1, 2023
2 parents 518da6c + 4757b3f commit 7a09bfb
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 5 deletions.
24 changes: 19 additions & 5 deletions src/nix/ping-store.cc
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
#include "command.hh"
#include "shared.hh"
#include "store-api.hh"
#include "finally.hh"

#include <nlohmann/json.hpp>

using namespace nix;

struct CmdPingStore : StoreCommand
struct CmdPingStore : StoreCommand, MixJSON
{
std::string description() override
{
Expand All @@ -20,10 +23,21 @@ 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;
Finally printRes([&]() {
logger->cout("%s", res);
});
res["url"] = store->getUri();
store->connect();
if (auto version = store->getVersion())
res["version"] = *version;
}
}
};

Expand Down
4 changes: 4 additions & 0 deletions tests/store-ping.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
source common.sh

STORE_INFO=$(nix store ping 2>&1)
STORE_INFO_JSON=$(nix store ping --json)

echo "$STORE_INFO" | grep "Store URL: ${NIX_REMOTE}"

if [[ -v NIX_DAEMON_PACKAGE ]] && isDaemonNewer "2.7.0pre20220126"; then
DAEMON_VERSION=$($NIX_DAEMON_PACKAGE/bin/nix-daemon --version | cut -d' ' -f3)
echo "$STORE_INFO" | grep "Version: $DAEMON_VERSION"
[[ "$(echo "$STORE_INFO_JSON" | jq -r ".version")" == "$DAEMON_VERSION" ]]
fi

expect 127 NIX_REMOTE=unix:$PWD/store nix store ping || \
fail "nix store ping on a non-existent store should fail"

[[ "$(echo "$STORE_INFO_JSON" | jq -r ".url")" == "${NIX_REMOTE:-local}" ]]

0 comments on commit 7a09bfb

Please sign in to comment.