fixed startup event oder - fixes #6511

This commit is contained in:
Eugene Pankov
2022-05-30 23:27:01 +02:00
parent b3df681753
commit 7437aaffcf
2 changed files with 38 additions and 35 deletions

View File

@@ -6,28 +6,29 @@ import * as gracefulFS from 'graceful-fs'
import { app } from 'electron'
import { promisify } from 'util'
export async function migrateConfig (): Promise<void> {
export function migrateConfig (): void {
const configPath = path.join(app.getPath('userData'), 'config.yaml')
const legacyConfigPath = path.join(app.getPath('userData'), '../terminus', 'config.yaml')
if (await fs.exists(legacyConfigPath) && (
!await fs.exists(configPath) ||
(await fs.stat(configPath)).mtime < (await fs.stat(legacyConfigPath)).mtime
if (fs.existsSync(legacyConfigPath) && (
!fs.existsSync(configPath) ||
fs.statSync(configPath).mtime < fs.statSync(legacyConfigPath).mtime
)) {
await fs.writeFile(configPath, await fs.readFile(legacyConfigPath))
fs.writeFileSync(configPath, fs.readFileSync(legacyConfigPath))
}
}
export async function loadConfig (): Promise<any> {
await migrateConfig()
export function loadConfig (): any {
migrateConfig()
const configPath = path.join(app.getPath('userData'), 'config.yaml')
if (await fs.exists(configPath)) {
return yaml.load(await fs.readFile(configPath, 'utf8'))
if (fs.existsSync(configPath)) {
return yaml.load(fs.readFileSync(configPath, 'utf8'))
} else {
return {}
}
}
const configPath = path.join(app.getPath('userData'), 'config.yaml')
let _configSaveInProgress = Promise.resolve()

View File

@@ -15,43 +15,45 @@ if (!process.env.TABBY_PLUGINS) {
const argv = parseArgs(process.argv, process.cwd())
const application = loadConfig().catch(err => {
// eslint-disable-next-line @typescript-eslint/init-declarations
let configStore: any
try {
configStore = loadConfig()
} catch (err) {
dialog.showErrorBox('Could not read config', err.message)
app.exit(1)
}).then(configStore => {
const _application = new Application(configStore)
}
ipcMain.on('app:new-window', () => {
_application.newWindow()
})
const application = new Application(configStore)
process.on('uncaughtException' as any, err => {
console.log(err)
_application.broadcast('uncaughtException', err)
})
if (argv.d) {
electronDebug({
isEnabled: true,
showDevTools: true,
devToolsMode: 'undocked',
})
}
return _application
ipcMain.on('app:new-window', () => {
application.newWindow()
})
process.on('uncaughtException' as any, err => {
console.log(err)
application.broadcast('uncaughtException', err)
})
if (argv.d) {
electronDebug({
isEnabled: true,
showDevTools: true,
devToolsMode: 'undocked',
})
}
app.on('activate', async () => {
if (!(await application).hasWindows()) {
(await application).newWindow()
if (!application.hasWindows()) {
application.newWindow()
} else {
(await application).focus()
application.focus()
}
})
app.on('second-instance', async (_event, newArgv, cwd) => {
(await application).handleSecondInstance(newArgv, cwd)
application.handleSecondInstance(newArgv, cwd)
})
if (!app.requestSingleInstanceLock()) {
@@ -71,9 +73,9 @@ app.on('ready', async () => {
]))
}
(await application).init()
application.init()
const window = await (await application).newWindow({ hidden: argv.hidden })
const window = await application.newWindow({ hidden: argv.hidden })
await window.ready
window.passCliArguments(process.argv, process.cwd(), false)
window.focus()