diff --git a/src/libstore/include/nix/store/store-open.hh b/src/libstore/include/nix/store/store-open.hh index 8b3460cbf..7c1cda5be 100644 --- a/src/libstore/include/nix/store/store-open.hh +++ b/src/libstore/include/nix/store/store-open.hh @@ -15,6 +15,11 @@ namespace nix { +/** + * @return The store config denoted by `storeURI` (slight misnomer...). + */ +ref resolveStoreConfig(StoreReference && storeURI); + /** * @return a Store object to access the Nix store denoted by * ‘uri’ (slight misnomer...). diff --git a/src/libstore/store-registration.cc b/src/libstore/store-registration.cc index 81cb80cc0..6362ac036 100644 --- a/src/libstore/store-registration.cc +++ b/src/libstore/store-registration.cc @@ -11,6 +11,13 @@ ref openStore(const std::string & uri, const Store::Config::Params & extr } ref openStore(StoreReference && storeURI) +{ + auto store = resolveStoreConfig(std::move(storeURI))->openStore(); + store->init(); + return store; +} + +ref resolveStoreConfig(StoreReference && storeURI) { auto & params = storeURI.params; @@ -58,10 +65,7 @@ ref openStore(StoreReference && storeURI) experimentalFeatureSettings.require(storeConfig->experimentalFeature()); storeConfig->warnUnknownSettings(); - auto store = storeConfig->openStore(); - store->init(); - - return store; + return storeConfig; } std::list> getDefaultSubstituters()