From c4a7264f34c41b3aeb4da6a93a917fccdd3564d4 Mon Sep 17 00:00:00 2001 From: cPhost Date: Tue, 19 Dec 2017 07:53:37 -0500 Subject: [PATCH] console: Fix errors where Logs dir can't be created. --- app/renderer/js/console.js | 4 +++- app/renderer/js/main.js | 2 -- app/renderer/js/utils/config-util.js | 9 +++++---- app/renderer/js/utils/default-util.js | 25 +++++++++++++++++++++---- app/renderer/js/utils/domain-util.js | 9 +++++---- 5 files changed, 34 insertions(+), 15 deletions(-) diff --git a/app/renderer/js/console.js b/app/renderer/js/console.js index 1d605e17..02f3a517 100644 --- a/app/renderer/js/console.js +++ b/app/renderer/js/console.js @@ -1,7 +1,9 @@ const NodeConsole = require('console').Console; const fs = require('fs'); const isDev = require('electron-is-dev'); +const { initSetUp } = require('./utils/default-util'); +initSetUp(); let app = null; if (process.type === 'renderer') { app = require('electron').remote.app; @@ -54,7 +56,7 @@ class Console { timestamp = getTimestamp; } - const fileStream = fs.createWriteStream(file); + const fileStream = fs.createWriteStream(file, { flags: 'a' }); const nodeConsole = new NodeConsole(fileStream); this.nodeConsole = nodeConsole; this.timestamp = timestamp; diff --git a/app/renderer/js/main.js b/app/renderer/js/main.js index b458793c..a5b495a9 100644 --- a/app/renderer/js/main.js +++ b/app/renderer/js/main.js @@ -10,7 +10,6 @@ const WebView = require(__dirname + '/js/components/webview.js'); const ServerTab = require(__dirname + '/js/components/server-tab.js'); const FunctionalTab = require(__dirname + '/js/components/functional-tab.js'); const ConfigUtil = require(__dirname + '/js/utils/config-util.js'); -const { initSetUp } = require(__dirname + '/js/utils/default-util.js'); class ServerManagerView { constructor() { @@ -45,7 +44,6 @@ class ServerManagerView { this.initActions(); this.registerIpcs(); this.initDefaultSettings(); - initSetUp(); }); } diff --git a/app/renderer/js/utils/config-util.js b/app/renderer/js/utils/config-util.js index 2dc2a3e7..50cd938a 100644 --- a/app/renderer/js/utils/config-util.js +++ b/app/renderer/js/utils/config-util.js @@ -6,8 +6,9 @@ const process = require('process'); const JsonDB = require('node-json-db'); const Console = require('../console'); -const console = new Console({ - file: 'config-util.log' +const logger = new Console({ + file: 'config-util.log', + timestamp: true }); let instance = null; @@ -70,8 +71,8 @@ class ConfigUtil { 'Error saving settings', 'We encountered error while saving current settings.' ); - console.error('Error while JSON parsing settings.json: '); - console.error(err); + logger.error('Error while JSON parsing settings.json: '); + logger.error(err); } } this.db = new JsonDB(settingsJsonPath, true, true); diff --git a/app/renderer/js/utils/default-util.js b/app/renderer/js/utils/default-util.js index 75340203..960715dc 100644 --- a/app/renderer/js/utils/default-util.js +++ b/app/renderer/js/utils/default-util.js @@ -1,11 +1,28 @@ const fs = require('fs'); -const { app } = require('electron').remote; -const logDir = `${app.getPath('userData')}/Logs/`; +let app = null; +let setupCompleted = false; +if (process.type === 'renderer') { + app = require('electron').remote.app; +} else { + app = require('electron').app; +} +const zulipDir = app.getPath('userData'); +const logDir = `${zulipDir}/Logs/`; const initSetUp = () => { - if (!fs.existsSync(logDir)) { - fs.mkdirSync(logDir); + // if it is the first time the app is running + // create zulip dir in userData folder to + // avoid errors + if (!setupCompleted) { + if (!fs.existsSync(zulipDir)) { + fs.mkdirSync(zulipDir); + } + + if (!fs.existsSync(logDir)) { + fs.mkdirSync(logDir); + } + setupCompleted = true; } }; diff --git a/app/renderer/js/utils/domain-util.js b/app/renderer/js/utils/domain-util.js index a0adc8a8..534c4980 100644 --- a/app/renderer/js/utils/domain-util.js +++ b/app/renderer/js/utils/domain-util.js @@ -7,8 +7,9 @@ const JsonDB = require('node-json-db'); const request = require('request'); const Console = require('../console'); -const console = new Console({ - file: `domain-util.log` +const logger = new Console({ + file: `domain-util.log`, + timestamp: true }); let instance = null; @@ -242,8 +243,8 @@ class DomainUtil { 'There seems to be error while saving new organisation, ' + 'you may have to readd your previous organizations back.' ); - console.error('Error while JSON parsing domain.json: '); - console.error(err); + logger.error('Error while JSON parsing domain.json: '); + logger.error(err); } } this.db = new JsonDB(domainJsonPath, true, true);