aboutsummaryrefslogtreecommitdiff
path: root/src/libutil
diff options
context:
space:
mode:
Diffstat (limited to 'src/libutil')
-rw-r--r--src/libutil/compression.cc7
-rw-r--r--src/libutil/local.mk2
2 files changed, 9 insertions, 0 deletions
diff --git a/src/libutil/compression.cc b/src/libutil/compression.cc
index a3bbb5170..723b072af 100644
--- a/src/libutil/compression.cc
+++ b/src/libutil/compression.cc
@@ -89,6 +89,11 @@ static ref<std::string> decompressBzip2(const std::string & in)
}
}
+static ref<std::string> decompressBrotli(const std::string & in)
+{
+ return make_ref<std::string>(runProgram(BRO, true, {"-d"}, in));
+}
+
ref<std::string> compress(const std::string & method, const std::string & in)
{
StringSink ssink;
@@ -106,6 +111,8 @@ ref<std::string> decompress(const std::string & method, const std::string & in)
return decompressXZ(in);
else if (method == "bzip2")
return decompressBzip2(in);
+ else if (method == "br")
+ return decompressBrotli(in);
else
throw UnknownCompressionMethod(format("unknown compression method ā€˜%sā€™") % method);
}
diff --git a/src/libutil/local.mk b/src/libutil/local.mk
index cac5c8795..0721b21c2 100644
--- a/src/libutil/local.mk
+++ b/src/libutil/local.mk
@@ -9,3 +9,5 @@ libutil_SOURCES := $(wildcard $(d)/*.cc)
libutil_LDFLAGS = $(LIBLZMA_LIBS) -lbz2 -pthread $(OPENSSL_LIBS)
libutil_LIBS = libformat
+
+libutil_CXXFLAGS = -DBRO=\"$(bro)\"