diff options
Diffstat (limited to 'src/nix')
-rw-r--r-- | src/nix/add-to-store.cc | 5 | ||||
-rw-r--r-- | src/nix/dev-shell.cc | 4 | ||||
-rw-r--r-- | src/nix/hash.cc | 1 | ||||
-rw-r--r-- | src/nix/make-content-addressable.cc | 5 | ||||
-rw-r--r-- | src/nix/path-info.cc | 2 | ||||
-rw-r--r-- | src/nix/show-derivation.cc | 6 | ||||
-rw-r--r-- | src/nix/verify.cc | 2 |
7 files changed, 17 insertions, 8 deletions
diff --git a/src/nix/add-to-store.cc b/src/nix/add-to-store.cc index 3c0f7cdd6..b92597cc2 100644 --- a/src/nix/add-to-store.cc +++ b/src/nix/add-to-store.cc @@ -48,7 +48,10 @@ struct CmdAddToStore : MixDryRun, StoreCommand ValidPathInfo info(store->makeFixedOutputPath(FileIngestionMethod::Recursive, narHash, *namePart)); info.narHash = narHash; info.narSize = sink.s->size(); - info.ca = makeFixedOutputCA(FileIngestionMethod::Recursive, info.narHash); + *info.ca = FileSystemHash { + .method = FileIngestionMethod::Recursive, + .hash = info.narHash + }; if (!dryRun) { auto source = StringSource { *sink.s }; diff --git a/src/nix/dev-shell.cc b/src/nix/dev-shell.cc index d300f6a23..337d7750e 100644 --- a/src/nix/dev-shell.cc +++ b/src/nix/dev-shell.cc @@ -135,7 +135,9 @@ StorePath getDerivationEnvironment(ref<Store> store, const StorePath & drvPath) drv.inputSrcs.insert(std::move(getEnvShPath)); Hash h = hashDerivationModulo(*store, drv, true); auto shellOutPath = store->makeOutputPath("out", h, drvName); - drv.outputs.insert_or_assign("out", DerivationOutput(shellOutPath.clone(), "", "")); + drv.outputs.insert_or_assign("out", DerivationOutput(shellOutPath.clone(), FileSystemHash { + FileIngestionMethod::Flat, Hash { } + })); drv.env["out"] = store->printStorePath(shellOutPath); auto shellDrvPath2 = writeDerivation(store, drv, drvName); diff --git a/src/nix/hash.cc b/src/nix/hash.cc index d1b5cca72..a36364f50 100644 --- a/src/nix/hash.cc +++ b/src/nix/hash.cc @@ -1,5 +1,6 @@ #include "command.hh" #include "hash.hh" +#include "content-address.hh" #include "legacy.hh" #include "shared.hh" #include "references.hh" diff --git a/src/nix/make-content-addressable.cc b/src/nix/make-content-addressable.cc index bd948a983..5003ff459 100644 --- a/src/nix/make-content-addressable.cc +++ b/src/nix/make-content-addressable.cc @@ -82,7 +82,10 @@ struct CmdMakeContentAddressable : StorePathsCommand, MixJSON if (hasSelfReference) info.references.insert(info.path.clone()); info.narHash = narHash; info.narSize = sink.s->size(); - info.ca = makeFixedOutputCA(FileIngestionMethod::Recursive, info.narHash); + info.ca = FileSystemHash { + .method = FileIngestionMethod::Recursive, + .hash = info.narHash, + }; if (!json) printError("rewrote '%s' to '%s'", pathS, store->printStorePath(info.path)); diff --git a/src/nix/path-info.cc b/src/nix/path-info.cc index 91d62bcec..cda371129 100644 --- a/src/nix/path-info.cc +++ b/src/nix/path-info.cc @@ -115,7 +115,7 @@ struct CmdPathInfo : StorePathsCommand, MixJSON std::cout << '\t'; Strings ss; if (info->ultimate) ss.push_back("ultimate"); - if (info->ca != "") ss.push_back("ca:" + info->ca); + if (info->ca) ss.push_back("ca:" + renderContentAddress(*info->ca)); for (auto & sig : info->sigs) ss.push_back(sig); std::cout << concatStringsSep(" ", ss); } diff --git a/src/nix/show-derivation.cc b/src/nix/show-derivation.cc index 22c569f3c..87387002d 100644 --- a/src/nix/show-derivation.cc +++ b/src/nix/show-derivation.cc @@ -72,9 +72,9 @@ struct CmdShowDerivation : InstallablesCommand for (auto & output : drv.outputs) { auto outputObj(outputsObj.object(output.first)); outputObj.attr("path", store->printStorePath(output.second.path)); - if (output.second.hash != "") { - outputObj.attr("hashAlgo", output.second.hashAlgo); - outputObj.attr("hash", output.second.hash); + if (output.second.hash) { + outputObj.attr("hashAlgo", output.second.hash->printMethodAlgo()); + outputObj.attr("hash", output.second.hash->hash.to_string(Base::Base16, false)); } } } diff --git a/src/nix/verify.cc b/src/nix/verify.cc index fa05e7353..58ffc7e4b 100644 --- a/src/nix/verify.cc +++ b/src/nix/verify.cc @@ -87,7 +87,7 @@ struct CmdVerify : StorePathsCommand if (!noContents) { std::unique_ptr<AbstractHashSink> hashSink; - if (info->ca == "") + if (!info->ca) hashSink = std::make_unique<HashSink>(*info->narHash.type); else hashSink = std::make_unique<HashModuloSink>(*info->narHash.type, storePathToHash(store->printStorePath(info->path))); |