mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-03-27 07:45:54 +00:00
Fix windows core installation and starting bugs
This commit is contained in:
parent
2e15d5015e
commit
5f8b8311f6
124
electron.js
124
electron.js
@ -8,7 +8,7 @@ const fs = require('fs')
|
|||||||
const electronDl = require('electron-dl')
|
const electronDl = require('electron-dl')
|
||||||
const extract = require('extract-zip')
|
const extract = require('extract-zip')
|
||||||
const fetch = require('node-fetch')
|
const fetch = require('node-fetch')
|
||||||
const child = require('child_process').execFile
|
const execFile = require('child_process').execFile
|
||||||
const exec = require('child_process').exec
|
const exec = require('child_process').exec
|
||||||
const spawn = require('child_process').spawn
|
const spawn = require('child_process').spawn
|
||||||
|
|
||||||
@ -19,6 +19,7 @@ electronDl()
|
|||||||
process.env['APP_PATH'] = app.getAppPath()
|
process.env['APP_PATH'] = app.getAppPath()
|
||||||
|
|
||||||
const homePath = app.getPath('home')
|
const homePath = app.getPath('home')
|
||||||
|
const downloadPath = app.getPath('downloads')
|
||||||
|
|
||||||
autoUpdater.autoDownload = false
|
autoUpdater.autoDownload = false
|
||||||
autoUpdater.autoInstallOnAppQuit = false
|
autoUpdater.autoInstallOnAppQuit = false
|
||||||
@ -30,9 +31,8 @@ log.info('App Platform is', process.platform)
|
|||||||
log.info('Platform arch is', process.arch)
|
log.info('Platform arch is', process.arch)
|
||||||
|
|
||||||
const winjar = String.raw`C:\Program Files\Qortal\qortal.jar`
|
const winjar = String.raw`C:\Program Files\Qortal\qortal.jar`
|
||||||
const windir = String.raw`C:\Qortal`
|
|
||||||
const winurl = "https://github.com/Qortal/qortal/releases/latest/download/qortal.exe"
|
const winurl = "https://github.com/Qortal/qortal/releases/latest/download/qortal.exe"
|
||||||
const winexe = "C:\\Qortal\\qortal.exe"
|
const winexe = downloadPath + "\\qortal.exe"
|
||||||
const startWinCore = "C:\\Program Files\\Qortal\\qortal.exe"
|
const startWinCore = "C:\\Program Files\\Qortal\\qortal.exe"
|
||||||
|
|
||||||
const zipdir = homePath
|
const zipdir = homePath
|
||||||
@ -84,6 +84,46 @@ const isRunning = (query, cb) => {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function checkWin() {
|
||||||
|
if (fs.existsSync(winjar)) {
|
||||||
|
isRunning('qortal.exe', (status) => {
|
||||||
|
if (status == true) {
|
||||||
|
log.info("Core is running, perfect !")
|
||||||
|
} else {
|
||||||
|
const dialogOpts = {
|
||||||
|
type: 'info',
|
||||||
|
buttons: [i18n.__("electron_translate_13"), i18n.__("electron_translate_14")],
|
||||||
|
title: i18n.__("electron_translate_15"),
|
||||||
|
message: i18n.__("electron_translate_16"),
|
||||||
|
detail: i18n.__("electron_translate_17")
|
||||||
|
}
|
||||||
|
dialog.showMessageBox(dialogOpts).then((returnValue) => {
|
||||||
|
if (returnValue.response === 0) {
|
||||||
|
spawn(startWinCore, { detached: true })
|
||||||
|
} else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
const dialogOpts = {
|
||||||
|
type: 'info',
|
||||||
|
buttons: [i18n.__("electron_translate_18"), i18n.__("electron_translate_19")],
|
||||||
|
title: i18n.__("electron_translate_20"),
|
||||||
|
message: i18n.__("electron_translate_21"),
|
||||||
|
detail: i18n.__("electron_translate_22")
|
||||||
|
}
|
||||||
|
dialog.showMessageBox(dialogOpts).then((returnValue) => {
|
||||||
|
if (returnValue.response === 0) {
|
||||||
|
downloadWindows()
|
||||||
|
} else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function downloadWindows() {
|
async function downloadWindows() {
|
||||||
let winLoader = new BrowserWindow({
|
let winLoader = new BrowserWindow({
|
||||||
width: 500,
|
width: 500,
|
||||||
@ -97,17 +137,34 @@ async function downloadWindows() {
|
|||||||
|
|
||||||
winLoader.show()
|
winLoader.show()
|
||||||
await electronDl.download(myWindow, winurl, {
|
await electronDl.download(myWindow, winurl, {
|
||||||
directory: windir,
|
directory: downloadPath,
|
||||||
onProgress: function () { log.info("Starting Download Windows Installer") }
|
onProgress: function () { log.info("Starting Download Qortal Core Installer") }
|
||||||
})
|
})
|
||||||
winLoader.destroy()
|
winLoader.destroy()
|
||||||
child(winexe, function (err, data) {
|
|
||||||
if (err) {
|
const coreInstall = execFile(winexe, (e, stdout, stderr) => {
|
||||||
log.info(err)
|
if (e) {
|
||||||
return
|
log.info(e)
|
||||||
|
removeQortalExe()
|
||||||
|
} else {
|
||||||
|
log.info('Qortal Core Installation Done', stdout, stderr)
|
||||||
|
removeQortalExe()
|
||||||
}
|
}
|
||||||
log.info(data.toString())
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
coreInstall.stdin.end()
|
||||||
|
}
|
||||||
|
|
||||||
|
async function removeQortalExe() {
|
||||||
|
try {
|
||||||
|
await fs.rmSync(winexe, {
|
||||||
|
force: true,
|
||||||
|
})
|
||||||
|
} catch (err) {
|
||||||
|
log.info('renove error', err)
|
||||||
|
}
|
||||||
|
|
||||||
|
checkWin()
|
||||||
}
|
}
|
||||||
|
|
||||||
async function checkPort() {
|
async function checkPort() {
|
||||||
@ -123,6 +180,8 @@ async function checkPort() {
|
|||||||
async function checkResponseStatus(res) {
|
async function checkResponseStatus(res) {
|
||||||
if (res.ok) {
|
if (res.ok) {
|
||||||
return
|
return
|
||||||
|
} else if (process.platform === 'win32') {
|
||||||
|
await checkWin()
|
||||||
} else {
|
} else {
|
||||||
await javaversion()
|
await javaversion()
|
||||||
}
|
}
|
||||||
@ -721,50 +780,7 @@ const createTray = () => {
|
|||||||
async function checkAll() {
|
async function checkAll() {
|
||||||
if (process.platform === 'win32') {
|
if (process.platform === 'win32') {
|
||||||
app.setAppUserModelId("org.qortal.QortalUI")
|
app.setAppUserModelId("org.qortal.QortalUI")
|
||||||
if (fs.existsSync(winjar)) {
|
await checkPort()
|
||||||
isRunning('qortal.exe', (status) => {
|
|
||||||
if (status == true) {
|
|
||||||
log.info("Core is running, perfect !")
|
|
||||||
} else {
|
|
||||||
log.info("Core is not running, starting it !")
|
|
||||||
const dialogOpts = {
|
|
||||||
type: 'info',
|
|
||||||
buttons: [i18n.__("electron_translate_13"), i18n.__("electron_translate_14")],
|
|
||||||
title: i18n.__("electron_translate_15"),
|
|
||||||
message: i18n.__("electron_translate_16"),
|
|
||||||
detail: i18n.__("electron_translate_17")
|
|
||||||
}
|
|
||||||
dialog.showMessageBox(dialogOpts).then((returnValue) => {
|
|
||||||
if (returnValue.response === 0) {
|
|
||||||
child(startWinCore, function (err, data) {
|
|
||||||
if (err) {
|
|
||||||
log.info(err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
log.info(data.toString())
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else {
|
|
||||||
const dialogOpts = {
|
|
||||||
type: 'info',
|
|
||||||
buttons: [i18n.__("electron_translate_18"), i18n.__("electron_translate_19")],
|
|
||||||
title: i18n.__("electron_translate_20"),
|
|
||||||
message: i18n.__("electron_translate_21"),
|
|
||||||
detail: i18n.__("electron_translate_22")
|
|
||||||
}
|
|
||||||
dialog.showMessageBox(dialogOpts).then((returnValue) => {
|
|
||||||
if (returnValue.response === 0) {
|
|
||||||
downloadWindows()
|
|
||||||
} else {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
} else if (process.platform === 'darwin') {
|
} else if (process.platform === 'darwin') {
|
||||||
await checkPort()
|
await checkPort()
|
||||||
} else if (process.platform === 'linux') {
|
} else if (process.platform === 'linux') {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user