/
compressFiles.js
52 lines (42 loc) · 1.29 KB
/
compressFiles.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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
var listOfExcelFiles = [];
var fs = require('fs');
var archiver = require('archiver');
var output = fs.createWriteStream('./FilesReadytobeEmailed.tar.gz');
var archive = archiver('tar', {
gzip: true,
zlib: {level: 9} //Compression level set
});
archive.on('error', function(err){
console.log("Archive failed!");
console.log(console.error);
});
//Pipe the data to outputfile
archive.pipe(output);
// Find all Excel locally.
var path = require('path'), fs=require('fs');
function filesExcelFinder(startPath,filter){
if (!fs.existsSync(startPath)){
console.log("Specified directory doesnt exist ",startPath);
return;
}
var files = fs.readdirSync(startPath);
for(var i=0;i<files.length;i++){
var filename=path.join(startPath,files[i]);
var stat = fs.lstatSync(filename);
if (stat.isDirectory()){
fromDir(filename,filter); //recursive
}
else if (filename.indexOf(filter)>=0) {
console.log('-- found: ',filename);
listOfExcelFiles.push(filename);
};
};
};
filesExcelFinder(__dirname,'.xlsx');
//Add Retrieved filelist and pipes it to Archive.
for (x in listOfExcelFiles){
archive.file(listOfExcelFiles[x]);
}
console.log(listOfExcelFiles);
// Finalise Archive
archive.finalize();