about summary refs log tree commit diff
path: root/ui-snapshot.c
diff options
context:
space:
mode:
authorChristian Hesse <mail@eworm.de>2020-02-26 09:12:21 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2020-03-12 19:56:39 -0600
commit892ba8c3cc0617d2087a2337d8c6e71524d7b49c (patch)
tree9f230da21b5cb0443a3058da543da6b13c959f71 /ui-snapshot.c
parenttests: add tests for xz compressed snapshots (diff)
downloadcgit-pink-892ba8c3cc0617d2087a2337d8c6e71524d7b49c.tar.gz
cgit-pink-892ba8c3cc0617d2087a2337d8c6e71524d7b49c.zip
ui-snapshot: add support for zstd compression
This patch adds support for zstd [0] compressed snapshots (*.tar.zst).
We enable multiple working threads (-T0), but keep default compression
level. The latter can be influenced by environment variable.

[0] https://www.zstd.net/

Signed-off-by: Christian Hesse <mail@eworm.de>
Diffstat (limited to '')
-rw-r--r--ui-snapshot.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/ui-snapshot.c b/ui-snapshot.c
index 92cde42..556d3ed 100644
--- a/ui-snapshot.c
+++ b/ui-snapshot.c
@@ -91,6 +91,12 @@ static int write_tar_xz_archive(const char *hex, const char *prefix)
 	return write_compressed_tar_archive(hex, prefix, argv);
 }
 
+static int write_tar_zstd_archive(const char *hex, const char *prefix)
+{
+	char *argv[] = { "zstd", "-T0", NULL };
+	return write_compressed_tar_archive(hex, prefix, argv);
+}
+
 const struct cgit_snapshot_format cgit_snapshot_formats[] = {
 	/* .tar must remain the 0 index */
 	{ ".tar",	"application/x-tar",	write_tar_archive	},
@@ -98,6 +104,7 @@ const struct cgit_snapshot_format cgit_snapshot_formats[] = {
 	{ ".tar.bz2",	"application/x-bzip2",	write_tar_bzip2_archive	},
 	{ ".tar.lz",	"application/x-lzip",	write_tar_lzip_archive	},
 	{ ".tar.xz",	"application/x-xz",	write_tar_xz_archive	},
+	{ ".tar.zst",	"application/x-zstd",	write_tar_zstd_archive	},
 	{ ".zip",	"application/x-zip",	write_zip_archive	},
 	{ NULL }
 };