49 lines
1005 B
JavaScript
49 lines
1005 B
JavaScript
|
#!/usr/bin/env node
|
||
|
|
||
|
"use strict";
|
||
|
|
||
|
var zip = require("../lib/bestzip.js");
|
||
|
|
||
|
var argv = require("yargs")
|
||
|
.usage("\nUsage: bestzip destination.zip sources/")
|
||
|
.option("force", {
|
||
|
describe: "Force use of node.js or native zip methods",
|
||
|
choices: ["node", "native"],
|
||
|
})
|
||
|
.option("level", {
|
||
|
describe: "Level of compression",
|
||
|
type: "number",
|
||
|
default: -1,
|
||
|
})
|
||
|
.demand(2).argv;
|
||
|
|
||
|
var destination = argv._.shift();
|
||
|
var source = argv._;
|
||
|
|
||
|
if (argv.level < -1 || argv.level > 9) {
|
||
|
console.error("Invalid compression level, must be >= 0 and <= 9");
|
||
|
process.exit(1);
|
||
|
}
|
||
|
|
||
|
console.log("Writing %s to %s...", source.join(", "), destination);
|
||
|
|
||
|
if (argv.force === "node") {
|
||
|
zip = zip.nodeZip;
|
||
|
} else if (argv.force === "native") {
|
||
|
zip = zip.nativeZip;
|
||
|
}
|
||
|
|
||
|
zip({
|
||
|
source: source,
|
||
|
destination: destination,
|
||
|
verbose: !!argv.verbose,
|
||
|
level: argv.level,
|
||
|
})
|
||
|
.then(function () {
|
||
|
console.log("zipped!");
|
||
|
})
|
||
|
.catch(function (err) {
|
||
|
console.error(err);
|
||
|
process.exit(1);
|
||
|
});
|