This commit is contained in:
parent
8d02bfaeea
commit
040a4b3865
1 changed files with 27 additions and 22 deletions
|
@ -53,8 +53,10 @@ try {
|
|||
}
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
require('electron').dialog.showErrorBox('创建配置目录失败 Failed to create config directory',
|
||||
'思源需要在用户家目录下创建配置文件夹(~/.config/siyuan),请确保该路径具有写入权限。\n\nSiYuan needs to create a configuration folder (~/.config/siyuan) in the user\'s home directory. Please make sure that the path has write permissions.')
|
||||
require('electron').
|
||||
dialog.
|
||||
showErrorBox('创建配置目录失败 Failed to create config directory',
|
||||
'思源需要在用户家目录下创建配置文件夹(~/.config/siyuan),请确保该路径具有写入权限。\n\nSiYuan needs to create a configuration folder (~/.config/siyuan) in the user\'s home directory. Please make sure that the path has write permissions.')
|
||||
app.exit()
|
||||
}
|
||||
|
||||
|
@ -382,31 +384,33 @@ const initKernel = (workspace, lang) => {
|
|||
resolve(false)
|
||||
return
|
||||
}
|
||||
// 改进桌面端拉起内核 https://github.com/siyuan-note/siyuan/issues/6894
|
||||
const getAvailablePort = (port) => {
|
||||
// https://gist.github.com/mikeal/1840641
|
||||
let tryGetPortCount = 0
|
||||
const server = net.createServer()
|
||||
return new Promise((resolve, reject) => server.on('error', error => {
|
||||
writeLog(error)
|
||||
if (2048 < ++tryGetPortCount) {
|
||||
writeLog('failed to get available port [tryCount=' + tryGetPortCount +
|
||||
', port=' + port + ']')
|
||||
reject()
|
||||
return
|
||||
}
|
||||
server.listen(++port)
|
||||
}).on('listening', () => {
|
||||
writeLog('got kernel port [' + port + ']')
|
||||
server.close(() => resolve(port))
|
||||
}).listen(port, '127.0.0.1'))
|
||||
}
|
||||
// TODO
|
||||
if (!isDevEnv) {
|
||||
writeLog('got kernel port [' + kernelPort + ']')
|
||||
} else {
|
||||
const getAvailablePort = (port) => {
|
||||
if (!port) {
|
||||
port = 6806
|
||||
}
|
||||
// https://gist.github.com/mikeal/1840641
|
||||
let tryGetPortCount = 0
|
||||
const server = net.createServer()
|
||||
return new Promise((resolve, reject) => server.on('error', error => {
|
||||
writeLog(error)
|
||||
if (2048 < ++tryGetPortCount) {
|
||||
writeLog(
|
||||
`failed to get available port [tryCount=${tryGetPortCount}, port=${port}]`)
|
||||
reject()
|
||||
return
|
||||
}
|
||||
server.listen(++port, '127.0.0.1')
|
||||
}).on('listening', () => {
|
||||
server.close(() => resolve(port))
|
||||
}).listen(port, '127.0.0.1'))
|
||||
}
|
||||
kernelPort = await getAvailablePort(kernelPort)
|
||||
}
|
||||
writeLog('got kernel port [' + kernelPort + ']')
|
||||
if (!kernelPort) {
|
||||
bootWindow.destroy()
|
||||
resolve(false)
|
||||
|
@ -434,7 +438,8 @@ const initKernel = (workspace, lang) => {
|
|||
},
|
||||
)
|
||||
kernelProcessPid = kernelProcess.pid
|
||||
writeLog('booted kernel process [pid=' + kernelProcessPid + ', port=' + kernelPort + ']')
|
||||
writeLog('booted kernel process [pid=' + kernelProcessPid + ', port=' +
|
||||
kernelPort + ']')
|
||||
|
||||
kernelProcess.on('close', (code) => {
|
||||
writeLog(
|
||||
|
|
Loading…
Add table
Reference in a new issue