#!/usr/bin/env node 'use strict'; var program = require('commander'); var lzma = require('../'); var fs = require('fs'); var path = require('path'); var argv = process.argv.slice(2); var positionalArgs = []; var level = undefined; var threads = undefined; var compress = true; for (var i = 0; i < argv.length; ++i) { if (argv[i][0] !== '-') { positionalArgs.push(argv[i]); continue; } if (!isNaN(+argv[i][1])) { level = +argv[i][1]; continue; } switch (argv[i]) { case '-d': case '--decompress': compress = false; break; case '-z': case '--compress': compress = true; break; case '-t': case '--threads': if (!isNaN(+argv[i+1])) threads = +argv[++i]; else threads = 0; break; default: case '-h': case '--help': usage(); return; } } function usage() { process.stdout.write('Usage: \n' + ' ' + path.basename(process.argv[1]) + ' [-d|-z] [-t num] [-1|...|-9] [infile] [outfile]\n' + '\n' + ' -d, --decompress Decompress infile to outfile\n' + ' -z, --compress Compress infile to outfile\n' + ' -t n, --threads n Use n threads for compressing\n' + ' -1, ..., -9 Specifiy compression level\n' + ' -h, --help Display this text\n' + '\n' + ' defaults to stdin and defaults to stdout.\n'); return; } var input = process.stdin, output = process.stdout; if (positionalArgs.length > 0) { input = fs.createReadStream(positionalArgs.shift()); } if (positionalArgs.length > 0) { output = fs.createWriteStream(positionalArgs.shift()); } var opts = { preset: level || lzma.PRESET_DEFAULT, threads: threads, }; var encoder = lzma.createStream(compress ? 'easyEncoder' : 'autoDecoder', opts); input.pipe(encoder).pipe(output);