Skip to content
This repository was archived by the owner on Sep 19, 2025. It is now read-only.

Commit 6d9b9f1

Browse files
Merge pull request #35 from ChadKillingsworth/download-check
Only download the compiler.jar if it doesn't already exist
2 parents 88ded47 + 9ab864a commit 6d9b9f1

File tree

1 file changed

+29
-6
lines changed

1 file changed

+29
-6
lines changed

build_compiler.js

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,42 @@
33

44
var spawn = require('child_process').spawnSync;
55
var ncp = require('ncp');
6-
var version = require('./package.json').version
6+
var Semver = require('semver');
7+
var version = require('./package.json').version;
8+
var fs = require('fs');
9+
var packageVer = new Semver(version);
710

811
var mavenVersion = 'v' + version.split('.')[0];
912
var url =
1013
'https://repo1.maven.org/maven2/com/google/javascript/closure-compiler/'
1114
+ mavenVersion + '/closure-compiler-' + mavenVersion + '.jar';
1215

13-
var compilerBuild = spawn('wget', ['-O', './compiler.jar', url], {
14-
stdio: 'inherit'
15-
});
16+
var shouldDownloadCompiler = true;
17+
var compilerJarStats = null;
18+
try {
19+
compilerJarStats = fs.statSync('./compiler.jar');
20+
} catch (e) {}
21+
if (compilerJarStats && compilerJarStats.isFile()) {
22+
var versionOutput = spawn('java', ['-jar', 'compiler.jar', '--version']);
23+
for (var line of versionOutput.output) {
24+
if (line) {
25+
var lineString = line.toString();
26+
var versionParts = /^Version: v(\d+)$/m.exec(lineString);
27+
if (versionParts) {
28+
shouldDownloadCompiler = parseInt(versionParts[1], 10) < packageVer.major;
29+
}
30+
}
31+
}
32+
}
33+
34+
if (shouldDownloadCompiler) {
35+
var compilerBuild = spawn('wget', ['-O', './compiler.jar', url], {
36+
stdio: 'inherit'
37+
});
1638

17-
if (compilerBuild.status !== 0) {
18-
throw new Error('Downloading compiler jar from Maven Central failed');
39+
if (compilerBuild.status !== 0) {
40+
throw new Error('Downloading compiler jar from Maven Central failed');
41+
}
1942
}
2043

2144
ncp('./compiler/contrib', './contrib', function(err) {

0 commit comments

Comments
 (0)