feat(3p/nix): Implement AddToStore proto handler
Implement the proto handler for AddToStore, which adds a nix path to the store. This is implemented by adding a new (probably soon-to-be-generalized) Source concretion that wraps a grpc ServerReader for the stream of data we're receiving from the client - this is less than ideal, as it's perpetuating the source/sink thing that's going on and storing entire nars in memory, but is at the very worst an incremental step towards a functioning nix that we can refactor in the future. Paired-With: Perry Lorier <isomer@tvl.fyi> Paired-With: Vincent Ambo <mail@tazj.in> Change-Id: I48db734e7460a47aee4a85dd5137b690980859e3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/1441 Tested-by: BuildkiteCI Reviewed-by: kanepyork <rikingcoding@gmail.com> Reviewed-by: tazjin <mail@tazj.in>
This commit is contained in:
parent
1fe4a47aa2
commit
05e44c121d
7 changed files with 141 additions and 13 deletions
8
third_party/nix/src/nix-daemon/nix-daemon.cc
vendored
8
third_party/nix/src/nix-daemon/nix-daemon.cc
vendored
|
|
@ -298,15 +298,15 @@ static void performOp(TunnelLogger* logger, const ref<Store>& store,
|
|||
case wopAddToStore: {
|
||||
bool fixed = 0;
|
||||
bool recursive = 0;
|
||||
std::string s;
|
||||
std::string hashType;
|
||||
std::string baseName;
|
||||
from >> baseName >> fixed /* obsolete */ >> recursive >> s;
|
||||
from >> baseName >> fixed /* obsolete */ >> recursive >> hashType;
|
||||
/* Compatibility hack. */
|
||||
if (!fixed) {
|
||||
s = "sha256";
|
||||
hashType = "sha256";
|
||||
recursive = true;
|
||||
}
|
||||
HashType hashAlgo = parseHashType(s);
|
||||
HashType hashAlgo = parseHashType(hashType);
|
||||
|
||||
TeeSource savedNAR(from);
|
||||
RetrieveRegularNARSink savedRegular;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue