forked from educorvi/vue-json-form
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathzip.js
35 lines (30 loc) · 811 Bytes
/
zip.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
let i = 2;
const args = process.argv;
let configs = {
output: "dist.zip",
dir: null
}
while (i < args.length) {
if (args[i] === "-o" || args[i] === "--output") {
configs.output = args[i + 1];
i += 2;
}else if (args[i] === "-s" || args[i] === "--source") {
configs.dir = args[i + 1];
i += 2;
} else if (!(args[i].startsWith("-"))) {
configs.dir = args[i];
i++;
}
}
if (!configs.dir) {
throw new Error("You must specify a folder");
}
const fs = require('fs');
const archiver = require('archiver');
let output = fs.createWriteStream(__dirname + '/' + configs.output);
let archiv = archiver('zip', {
zlib: {level: 9}
});
archiv.pipe(output);
archiv.directory(configs.dir, ".");
archiv.finalize();