Got Java download working, just need to integrate it into the program and add some safeguards to the code.

pull/1/head
Daniel Scalzi 2018-03-28 21:19:56 -04:00
parent 4b2cac1eff
commit 2062865e7f
No known key found for this signature in database
GPG Key ID: 5CA2F145B63535F9
1 changed files with 61 additions and 23 deletions

View File

@ -2,6 +2,7 @@ const cp = require('child_process')
const fs = require('fs')
const path = require('path')
const Registry = require('winreg')
const request = require('request')
/**
* Attempts to find a valid x64 installation of Java on Windows machines.
@ -79,6 +80,7 @@ function _validateBinary(binaryPath){
return new Promise((resolve, reject) => {
const fBp = path.join(binaryPath, 'bin', 'java.exe')
if(fs.existsSync(fBp)){
cp.exec('"' + fBp + '" -XshowSettings:properties', (err, stdout, stderr) => {
try {
@ -104,6 +106,9 @@ function _validateBinary(binaryPath){
resolve(true)
}
})
} else {
resolve(false)
}
})
}
@ -225,11 +230,44 @@ async function validate(){
}
const PLATFORM_MAP = {
win32: '-windows-x64.tar.gz',
darwin: '-macosx-x64.tar.gz',
linux: '-linux-x64.tar.gz'
}
const BASE_URL = 'http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jre-8u161'
function _downloadJava(acceptLicense, dir){
if(!acceptLicense){
return
}
// TODO -> Complete this code. See format used in assetguard.js#510
const combined = BASE_URL + PLATFORM_MAP[process.platform]
const name = combined.substring(combined.lastIndexOf('/')+1)
const fDir = path.join(dir, name)
const opts = {
url: combined,
headers: {
'Cookie': 'oraclelicense=accept-securebackup-cookie'
}
}
const req = request(opts)
let writeStream = fs.createWriteStream(fDir)
req.pipe(writeStream)
req.resume()
}
async function test(){
console.log(await validate())
}
test()
//test()
_downloadJava(true, 'C:\\Users\\Asus\\Desktop\\LauncherElectron\\target\\')
module.exports = {
validate