From 928906e0f3ee538a0010e62329ae3268609b18e3 Mon Sep 17 00:00:00 2001 From: Scott Nonnenberg Date: Tue, 6 Mar 2018 18:19:25 -0800 Subject: [PATCH] Enable deletion of all logs on disk via IPC --- app/logging.js | 25 +++++++++++++++++++++++++ preload.js | 8 ++++++++ 2 files changed, 33 insertions(+) diff --git a/app/logging.js b/app/logging.js index 1fa10e0ea..27975694a 100644 --- a/app/logging.js +++ b/app/logging.js @@ -10,6 +10,7 @@ const mkdirp = require('mkdirp'); const _ = require('lodash'); const readFirstLine = require('firstline'); const readLastLines = require('read-last-lines').read; +const rimraf = require('rimraf'); const { app, @@ -68,6 +69,30 @@ function initialize() { logger.error(`Problem loading log from disk: ${error.stack}`); }); }); + + ipc.on('delete-all-logs', async (event) => { + try { + await deleteAllLogs(logPath); + } catch (e) { + console.log('Something went wrong!'); + } + + event.sender.send('delete-all-logs-complete'); + }); + }); +} + +async function deleteAllLogs(logPath) { + return new Promise((resolve, reject) => { + rimraf(logPath, { + disableGlob: true, + }, (error) => { + if (error) { + return reject(error); + } + + return resolve(); + }); }); } diff --git a/preload.js b/preload.js index ba280ab20..3a38b7e6c 100644 --- a/preload.js +++ b/preload.js @@ -38,10 +38,18 @@ ipc.send('update-tray-icon', unreadCount); }; + window.deleteAllLogs = function() { + ipc.send('delete-all-logs'); + } + ipc.on('debug-log', function() { Whisper.events.trigger('showDebugLog'); }); + ipc.on('delete-all-logs-complete', function() { + Whisper.events.trigger('deleteAllLogsComplete'); + }); + ipc.on('set-up-with-import', function() { Whisper.events.trigger('setupWithImport'); });