summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2021-05-23 17:06:14 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2021-05-23 17:06:14 +0200
commitd168b89ab110a2d1fcaf72ad085a789092b82b00 (patch)
treefd0820a78ad5013da34cd7a137d28d678400a213
parent33682347b9b3f8403d9db23b8ca7483ffe9f7767 (diff)
downloadplan9front-d168b89ab110a2d1fcaf72ad085a789092b82b00.tar.xz
mkpaqfs(8): allow setting compression level
-rw-r--r--sys/man/8/mkpaqfs8
-rw-r--r--sys/src/cmd/paqfs/mkpaqfs.c9
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;