libutil: remove makeDecompressionSink

Change-Id: I4258227b5dbbb735a75b477d8a57007bfca305e9
This commit is contained in:
eldritch horrors
2024-06-30 21:21:58 +02:00
parent 93344a1379
commit d658cf5a0e
3 changed files with 4 additions and 30 deletions
+4 -4
View File
@@ -39,10 +39,10 @@ void builtinFetchurl(const BasicDerivation & drv, const std::string & netrcData)
FileTransferRequest request(url);
request.verifyTLS = false;
auto decompressor = makeDecompressionSink(
unpack && mainUrl.ends_with(".xz") ? "xz" : "none", sink);
fileTransfer->download(std::move(request))->drainInto(*decompressor);
decompressor->finish();
auto raw = fileTransfer->download(std::move(request));
auto decompressor = makeDecompressionSource(
unpack && mainUrl.ends_with(".xz") ? "xz" : "none", *raw);
decompressor->drainInto(sink);
});
if (unpack)
-25
View File
@@ -198,31 +198,6 @@ std::string decompress(const std::string & method, std::string_view in)
return filter->drain();
}
std::unique_ptr<FinishSink> makeDecompressionSink(const std::string & method, Sink & nextSink)
{
if (method == "none" || method == "")
return std::make_unique<NoneSink>(nextSink);
else if (method == "br")
return sourceToSink([&](Source & source) {
BrotliDecompressionSource wrapped{source};
wrapped.drainInto(nextSink);
// special handling because sourceToSink is screwy: try
// to read the source one final time and fail when that
// succeeds (to reject trailing garbage in input data).
try {
char buf;
source(&buf, 1);
throw Error("garbage at end of brotli stream detected");
} catch (EndOfFile &) {
}
});
else
return sourceToSink([&](Source & source) {
auto decompressionSource = std::make_unique<ArchiveDecompressionSource>(source);
decompressionSource->drainInto(nextSink);
});
}
std::unique_ptr<Source> makeDecompressionSource(const std::string & method, Source & inner)
{
if (method == "none" || method == "") {
-1
View File
@@ -18,7 +18,6 @@ struct CompressionSink : BufferedSink, FinishSink
std::string decompress(const std::string & method, std::string_view in);
std::unique_ptr<FinishSink> makeDecompressionSink(const std::string & method, Sink & nextSink);
std::unique_ptr<Source> makeDecompressionSource(const std::string & method, Source & inner);
std::string compress(const std::string & method, std::string_view in, const bool parallel = false, int level = -1);