forked from lix-project/lix
Merge branch 'master' into path-info
This commit is contained in:
commit
87ca46263d
|
@ -219,7 +219,7 @@ std::optional<FlakeRef> LockFile::isUnlocked() const
|
||||||
visit(root);
|
visit(root);
|
||||||
|
|
||||||
for (auto & i : nodes) {
|
for (auto & i : nodes) {
|
||||||
if (i == root) continue;
|
if (i == ref<const Node>(root)) continue;
|
||||||
auto node = i.dynamic_pointer_cast<const LockedNode>();
|
auto node = i.dynamic_pointer_cast<const LockedNode>();
|
||||||
if (node && !node->lockedRef.input.isLocked())
|
if (node && !node->lockedRef.input.isLocked())
|
||||||
return node->lockedRef;
|
return node->lockedRef;
|
||||||
|
|
|
@ -762,7 +762,7 @@ StorePathSet Store::queryValidPaths(const StorePathSet & paths, SubstituteFlag m
|
||||||
|
|
||||||
auto doQuery = [&](const StorePath & path) {
|
auto doQuery = [&](const StorePath & path) {
|
||||||
checkInterrupt();
|
checkInterrupt();
|
||||||
queryPathInfo(path, {[path, this, &state_, &wakeup](std::future<ref<const ValidPathInfo>> fut) {
|
queryPathInfo(path, {[path, &state_, &wakeup](std::future<ref<const ValidPathInfo>> fut) {
|
||||||
auto state(state_.lock());
|
auto state(state_.lock());
|
||||||
try {
|
try {
|
||||||
auto info = fut.get();
|
auto info = fut.get();
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
#include "command.hh"
|
#include "command.hh"
|
||||||
#include "shared.hh"
|
#include "shared.hh"
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
|
#include "finally.hh"
|
||||||
|
|
||||||
|
#include <nlohmann/json.hpp>
|
||||||
|
|
||||||
using namespace nix;
|
using namespace nix;
|
||||||
|
|
||||||
struct CmdPingStore : StoreCommand
|
struct CmdPingStore : StoreCommand, MixJSON
|
||||||
{
|
{
|
||||||
std::string description() override
|
std::string description() override
|
||||||
{
|
{
|
||||||
|
@ -20,10 +23,21 @@ struct CmdPingStore : StoreCommand
|
||||||
|
|
||||||
void run(ref<Store> store) override
|
void run(ref<Store> store) override
|
||||||
{
|
{
|
||||||
|
if (!json) {
|
||||||
notice("Store URL: %s", store->getUri());
|
notice("Store URL: %s", store->getUri());
|
||||||
store->connect();
|
store->connect();
|
||||||
if (auto version = store->getVersion())
|
if (auto version = store->getVersion())
|
||||||
notice("Version: %s", *version);
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,17 @@
|
||||||
source common.sh
|
source common.sh
|
||||||
|
|
||||||
STORE_INFO=$(nix store ping 2>&1)
|
STORE_INFO=$(nix store ping 2>&1)
|
||||||
|
STORE_INFO_JSON=$(nix store ping --json)
|
||||||
|
|
||||||
echo "$STORE_INFO" | grep "Store URL: ${NIX_REMOTE}"
|
echo "$STORE_INFO" | grep "Store URL: ${NIX_REMOTE}"
|
||||||
|
|
||||||
if [[ -v NIX_DAEMON_PACKAGE ]] && isDaemonNewer "2.7.0pre20220126"; then
|
if [[ -v NIX_DAEMON_PACKAGE ]] && isDaemonNewer "2.7.0pre20220126"; then
|
||||||
DAEMON_VERSION=$($NIX_DAEMON_PACKAGE/bin/nix-daemon --version | cut -d' ' -f3)
|
DAEMON_VERSION=$($NIX_DAEMON_PACKAGE/bin/nix-daemon --version | cut -d' ' -f3)
|
||||||
echo "$STORE_INFO" | grep "Version: $DAEMON_VERSION"
|
echo "$STORE_INFO" | grep "Version: $DAEMON_VERSION"
|
||||||
|
[[ "$(echo "$STORE_INFO_JSON" | jq -r ".version")" == "$DAEMON_VERSION" ]]
|
||||||
fi
|
fi
|
||||||
|
|
||||||
expect 127 NIX_REMOTE=unix:$PWD/store nix store ping || \
|
expect 127 NIX_REMOTE=unix:$PWD/store nix store ping || \
|
||||||
fail "nix store ping on a non-existent store should fail"
|
fail "nix store ping on a non-existent store should fail"
|
||||||
|
|
||||||
|
[[ "$(echo "$STORE_INFO_JSON" | jq -r ".url")" == "${NIX_REMOTE:-local}" ]]
|
||||||
|
|
Loading…
Reference in a new issue