]> git.lizzy.rs Git - plan9front.git/commitdiff
mkpaqfs(8): allow setting compression level
authorcinap_lenrek <cinap_lenrek@felloff.net>
Sun, 23 May 2021 15:06:14 +0000 (17:06 +0200)
committercinap_lenrek <cinap_lenrek@felloff.net>
Sun, 23 May 2021 15:06:14 +0000 (17:06 +0200)
sys/man/8/mkpaqfs
sys/src/cmd/paqfs/mkpaqfs.c

index 33a1cc9d39a8d376090d6789b7e36c9285074bb3..55f36fa4328b9aee5bc6d226185b7fe3698ea1fa 100644 (file)
@@ -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
index fbc91ee49f759b33e268f4f3769d04014c3923bd..b29c944c038c3952a14f7e6399a8f9b570bf1399 100644 (file)
@@ -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;