snapshots::
Text which specifies the default set of snapshot formats that cgit
generates links for. The value is a space-separated list of zero or
- more of the values "tar", "tar.gz", "tar.bz2", "tar.xz" and "zip".
- The special value "all" enables all snapshot formats.
+ more of the values "tar", "tar.gz", "tar.bz2", "tar.xz", "tar.lz" and
+ "zip". The special value "all" enables all snapshot formats.
Default value: none.
source-filter::
cache-root=$PWD/cache
cache-size=1021
-snapshots=tar.gz tar.bz zip
+snapshots=tar.gz tar.bz tar.lz zip
enable-log-filecount=1
enable-log-linecount=1
summary-log=5
test_line_count = 1 master/file-5
'
+if test -n "$(which lzip 2>/dev/null)"; then
+ test_set_prereq LZIP
+else
+ say 'Skipping LZIP validation tests: lzip not found'
+fi
+
+test_expect_success LZIP 'get foo/snapshot/master.tar.lz' '
+ cgit_url "foo/snapshot/master.tar.lz" >tmp
+'
+
+test_expect_success LZIP 'check html headers' '
+ head -n 1 tmp |
+ grep "Content-Type: application/x-lzip" &&
+
+ head -n 2 tmp |
+ grep "Content-Disposition: inline; filename=.master.tar.lz."
+'
+
+test_expect_success LZIP 'strip off the header lines' '
+ strip_headers <tmp >master.tar.lz
+'
+
+test_expect_success LZIP 'verify lzip format' '
+ lzip --test master.tar.lz &&
+ cp master.tar.lz /tmp/.
+'
+
+test_expect_success LZIP 'untar' '
+ rm -rf master &&
+ tar --lzip -xf master.tar.lz
+'
+
+test_expect_success LZIP 'count files' '
+ ls master/ >output &&
+ test_line_count = 5 output
+'
+
+test_expect_success LZIP 'verify untarred file-5' '
+ grep "^5$" master/file-5 &&
+ test_line_count = 1 master/file-5
+'
+
test_expect_success 'get foo/snapshot/master.zip' '
cgit_url "foo/snapshot/master.zip" >tmp
'
return write_compressed_tar_archive(hex, prefix, argv);
}
+static int write_tar_lzip_archive(const char *hex, const char *prefix)
+{
+ char *argv[] = { "lzip", NULL };
+ return write_compressed_tar_archive(hex, prefix, argv);
+}
+
static int write_tar_xz_archive(const char *hex, const char *prefix)
{
char *argv[] = { "xz", NULL };
{ ".tar", "application/x-tar", write_tar_archive },
{ ".tar.gz", "application/x-gzip", write_tar_gzip_archive },
{ ".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 },
{ ".zip", "application/x-zip", write_zip_archive },
{ NULL }