Merge branch 'poljar/skip-unneeded-reindex' into develop

This commit is contained in:
Damir Jelić 2020-06-24 16:59:29 +02:00
commit a11feaca32
2 changed files with 26 additions and 10 deletions

View file

@ -58,7 +58,7 @@
"tar": "^6.0.1" "tar": "^6.0.1"
}, },
"hakDependencies": { "hakDependencies": {
"matrix-seshat": "^2.0.0", "matrix-seshat": "^2.1.0",
"keytar": "^5.6.0" "keytar": "^5.6.0"
}, },
"build": { "build": {

View file

@ -207,6 +207,14 @@ let eventIndex = null;
let mainWindow = null; let mainWindow = null;
global.appQuitting = false; global.appQuitting = false;
const deleteContents = 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 // handle uncaught errors otherwise it displays
// stack traces in popup dialogs, which is terrible (which // stack traces in popup dialogs, which is terrible (which
// it will do any time the auto update poke fails, and there's // 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, { const recoveryIndex = new SeshatRecovery(eventStorePath, {
passphrase: seshatPassphrase, 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 deleteContents(eventStorePath);
} catch (e) {
}
} else {
await recoveryIndex.reindex();
}
eventIndex = new Seshat(eventStorePath, { eventIndex = new Seshat(eventStorePath, {
passphrase: seshatPassphrase, passphrase: seshatPassphrase,
}); });
@ -485,15 +508,8 @@ ipcMain.on('seshat', async function(ev, payload) {
case 'deleteEventIndex': 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 { try {
await deleteFolderRecursive(eventStorePath); await deleteContents(eventStorePath);
} catch (e) { } catch (e) {
} }
} }