-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.js
More file actions
65 lines (56 loc) · 1.9 KB
/
install.js
File metadata and controls
65 lines (56 loc) · 1.9 KB
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
53
54
55
56
57
58
59
60
61
62
63
64
65
var os = require('os'),
fs = require('fs'),
request = require('request'),
progress = require('request-progress'),
ProgressBar = require('progress'),
unzip = require('unzip');
var DOWNLOADS = {
"win32": {
"ia32": "https://bitbucket.org/bigteddy/node-jre-runner/downloads/win32.zip",
"x64" : "https://bitbucket.org/bigteddy/node-jre-runner/downloads/win64.zip"
},
"darwin": {
"ia32": "https://bitbucket.org/bigteddy/node-jre-runner/downloads/osx.zip",
"x64" : "https://bitbucket.org/bigteddy/node-jre-runner/downloads/osx.zip"
},
"linux": {
"ia32": "https://bitbucket.org/bigteddy/node-jre-runner/downloads/linux32.zip",
"x64" : "https://bitbucket.org/bigteddy/node-jre-runner/downloads/linux64.zip",
"arm" : "https://bitbucket.org/bigteddy/node-jre-runner/downloads/linuxarm.zip"
}
}
var downloadUrl = DOWNLOADS[os.platform()][os.arch()];
var targetPath = os.tmpdir() + "/jdk.zip";
console.log("Downloading JRE from " + downloadUrl);
var bar = null;
progress(request(downloadUrl))
.on("progress", function(state) {
if(!bar) {
bar = new ProgressBar(" downloading [:bar] :percent :etas", {
total: state.total
});
}
bar.tick(state.received);
})
.on("error", function(err) {
console.log("There was an error downloading the file!", err);
})
.pipe(fs.createWriteStream(targetPath))
.on("error", function(err) {
console.log("There was an error saving the file!", err);
})
.on("close", function(err) {
console.log("File downloaded.");
extractJdk(targetPath);
});
function extractJdk(targetPath) {
var file = fs.createReadStream(targetPath);
var targetDir = __dirname + "/jre/";
var extract = file.pipe(unzip.Extract({ path: targetDir }));
extract.on("close", function(err) {
console.log("JRE extracted!");
});
extract.on("error", function(err) {
console.log("Could not extract the JRE!", err);
});
}