From 141107c678dc47a4e7119cf9fd067bdb4f3e615f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Tue, 23 Jun 2020 16:42:27 +0200 Subject: [PATCH] electron-main: Skip the reindex if we're going to delete the db anyways. --- src/electron-main.js | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/src/electron-main.js b/src/electron-main.js index b68dfe5..03dac06 100644 --- a/src/electron-main.js +++ b/src/electron-main.js @@ -207,6 +207,14 @@ let eventIndex = null; let mainWindow = null; global.appQuitting = false; + +const deleteFolderRecursive = async (p) => { + for (const entry of await afs.readdir(p)) { + const curPath = path.join(p, entry); + await afs.unlink(curPath); + } +}; + // handle uncaught errors otherwise it displays // stack traces in popup dialogs, which is terrible (which // it will do any time the auto update poke fails, and there's @@ -453,7 +461,22 @@ ipcMain.on('seshat', async function(ev, payload) { const recoveryIndex = new SeshatRecovery(eventStorePath, { passphrase: seshatPassphrase, }); - await recoveryIndex.reindex(); + + const userVersion = await recoveryIndex.getUserVersion(); + + // If our user version is 0 we'll delete the db + // anyways so reindexing it is a waste of time. + if (userVersion === 0) { + await recoveryIndex.shutdown(); + + try { + await deleteFolderRecursive(eventStorePath); + } catch (e) { + } + } else { + await recoveryIndex.reindex(); + } + eventIndex = new Seshat(eventStorePath, { passphrase: seshatPassphrase, }); @@ -485,13 +508,6 @@ ipcMain.on('seshat', async function(ev, payload) { case 'deleteEventIndex': { - const deleteFolderRecursive = async (p) => { - for (const entry of await afs.readdir(p)) { - const curPath = path.join(p, entry); - await afs.unlink(curPath); - } - }; - try { await deleteFolderRecursive(eventStorePath); } catch (e) {