1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-26 11:41:15 +02:00

Allow shorter syntax for chroot stores

You can now say '--store /tmp/nix' instead of '--store local?root=/tmp/nix'.
This commit is contained in:
Eelco Dolstra 2017-10-24 15:16:18 +02:00
parent 3460e4cf00
commit d16fd24973
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE
5 changed files with 23 additions and 11 deletions

View file

@ -843,7 +843,7 @@ StoreType getStoreType(const std::string & uri, const std::string & stateDir)
{
if (uri == "daemon") {
return tDaemon;
} else if (uri == "local") {
} else if (uri == "local" || hasPrefix(uri, "/")) {
return tLocal;
} else if (uri == "" || uri == "auto") {
if (access(stateDir.c_str(), R_OK | W_OK) == 0)
@ -865,8 +865,12 @@ static RegisterStoreImplementation regStore([](
switch (getStoreType(uri, get(params, "state", settings.nixStateDir))) {
case tDaemon:
return std::shared_ptr<Store>(std::make_shared<UDSRemoteStore>(params));
case tLocal:
return std::shared_ptr<Store>(std::make_shared<LocalStore>(params));
case tLocal: {
Store::Params params2 = params;
if (hasPrefix(uri, "/"))
params2["root"] = uri;
return std::shared_ptr<Store>(std::make_shared<LocalStore>(params2));
}
default:
return nullptr;
}