From d168b89ab110a2d1fcaf72ad085a789092b82b00 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sun, 23 May 2021 17:06:14 +0200 Subject: [PATCH] mkpaqfs(8): allow setting compression level --- sys/man/8/mkpaqfs | 8 ++++++++ sys/src/cmd/paqfs/mkpaqfs.c | 9 +++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/sys/man/8/mkpaqfs b/sys/man/8/mkpaqfs index 33a1cc9d3..55f36fa43 100644 --- a/sys/man/8/mkpaqfs +++ b/sys/man/8/mkpaqfs @@ -6,6 +6,8 @@ mkpaqfs \- make a compressed read-only file system [ .B -u ] [ +.B -1-9 +] [ .B -b .I blocksize ] [ @@ -42,6 +44,12 @@ option is set, the blocks are not compressed. Otherwise each block is compressed using the .IR flate (2) compression algorithm. +The compression level can be set using the flags +.B -1 +to +.B -9 +(defaults to +.BR -6 ). The .B -l option embeds a label of up to 32 bytes within the file header and may be diff --git a/sys/src/cmd/paqfs/mkpaqfs.c b/sys/src/cmd/paqfs/mkpaqfs.c index fbc91ee49..b29c944c0 100644 --- a/sys/src/cmd/paqfs/mkpaqfs.c +++ b/sys/src/cmd/paqfs/mkpaqfs.c @@ -33,6 +33,7 @@ void warn(char *fmt, ...); int uflag=0; /* uncompressed */ long blocksize = 4*1024; +int level = 6; Biobuf *out; DigestState *outdg; @@ -57,6 +58,10 @@ main(int argc, char *argv[]) if(label == nil) usage(); break; + case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + level = ARGC() - '0'; + break; case 'b': s = ARGF(); if(s) { @@ -105,7 +110,7 @@ main(int argc, char *argv[]) void usage(void) { - fprint(2, "usage: %s [-u] [-b blocksize] -o output [root]\n", argv0); + fprint(2, "usage: %s [-u] [-1-9] [-b blocksize] -o output [root]\n", argv0); exits("usage"); } @@ -370,7 +375,7 @@ writeBlock(uchar *b, int type) if(!uflag) { cb = emallocz(blocksize); - n = deflateblock(cb, blocksize, b, blocksize, 6, 0); + n = deflateblock(cb, blocksize, b, blocksize, level, 0); if(n > 0 && n < blocksize) { bh.encoding = DeflateEnc; bh.size = n;