forked from cdnjs/cdnjs
/
zopfli.js
39 lines (33 loc) · 1.32 KB
/
zopfli.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
//Assumes zopfli is installed
var glob = require('glob');
var fs = require('fs');
var execSync = require('execSync');
glob("../ajax/libs/**/package.json", function (error, matches) {
matches.forEach(function(element){
var package = JSON.parse(fs.readFileSync(element, 'utf8'));
package.assets = Array();
var versions = glob.sync("../ajax/libs/"+package.name+"/!(package.json)");
versions.forEach(function(version) {
var temp = Object();
temp.files = glob.sync(version + "/**/*.*");
for (var i = 0; i < temp.files.length; i++){
var regex = /(?:^.+\/)?(.+?)?\.((?:js)|(?:css))([\.-](?:gz))?$/ig;
var result = regex.exec(temp.files[i]);
//result[0] Original Input
//result[1] Filename
//result[2] js|css
//result[3] gz
if (result == null) {
continue;
}
if (typeof result[3] == "undefined") { //
if (!fs.existsSync(temp.files[i] + ".gz")) {
console.log('zopfli', temp.files[i])
execSync.exec('zopfli ' + temp.files[i]);
console.log('zopfli ended')
}
}
}
});
});
});