aboutsummaryrefslogtreecommitdiff
path: root/src/libutil/archive.cc
diff options
context:
space:
mode:
authoreldritch horrors <pennae@lix.systems>2024-05-15 17:13:45 +0200
committereldritch horrors <pennae@lix.systems>2024-07-11 20:37:27 +0000
commita5d431a9119c2560608768d9ec70fa37d5a6a985 (patch)
tree57a0b16585bb0070004cf45f537e1d87ba284960 /src/libutil/archive.cc
parent03db4efab90b72c15cb5513debb3ad1563e70cf7 (diff)
libstore: turn copyNAR into a generator
Change-Id: Id452f6a03faa1037ff13af0f63e32883966ff40d
Diffstat (limited to 'src/libutil/archive.cc')
-rw-r--r--src/libutil/archive.cc8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/libutil/archive.cc b/src/libutil/archive.cc
index 1b8038649..1c82c3f78 100644
--- a/src/libutil/archive.cc
+++ b/src/libutil/archive.cc
@@ -413,16 +413,14 @@ void restorePath(const Path & path, Source & source)
}
-void copyNAR(Source & source, Sink & sink)
+WireFormatGenerator copyNAR(Source & source)
{
// FIXME: if 'source' is the output of dumpPath() followed by EOF,
// we should just forward all data directly without parsing.
- ParseSink parseSink; /* null sink; just parse the NAR */
+ static ParseSink parseSink; /* null sink; just parse the NAR */
- TeeSource wrapper { source, sink };
-
- parseDump(parseSink, wrapper);
+ return parseAndCopyDump(parseSink, source);
}