From 84f06e3e7963b8353636868395cfd7159bdba069 Mon Sep 17 00:00:00 2001 From: Adrian DC Date: Wed, 23 Oct 2019 01:36:40 +0200 Subject: [PATCH] app: handle nativefier.json readonly access with options.maximize (#856) **Resolves #855** **Example result upon Terminal launch:** `WARNING: Ignored nativefier.json rewrital (Error: EACCES: permission denied, open '/usr/lib/jupyter-remote-client/resources/app/nativefier.json')` **Behaviour:** + Instead of crashing, the application properly opens and is always maximized. + When permissions are R/W, the application is maximized on first launch and the closing states are remembered by the OS throughout launches. --- app/src/components/mainWindow/mainWindow.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/components/mainWindow/mainWindow.js b/app/src/components/mainWindow/mainWindow.js index b0251b7..d3b53af 100644 --- a/app/src/components/mainWindow/mainWindow.js +++ b/app/src/components/mainWindow/mainWindow.js @@ -140,10 +140,15 @@ function createMainWindow(inpOptions, onAppQuit, setDockBadge) { if (options.maximize) { mainWindow.maximize(); options.maximize = undefined; - fs.writeFileSync( - path.join(__dirname, '..', 'nativefier.json'), - JSON.stringify(options), - ); + try { + fs.writeFileSync( + path.join(__dirname, '..', 'nativefier.json'), + JSON.stringify(options), + ); + } catch (exception) { + // eslint-disable-next-line no-console + console.log(`WARNING: Ignored nativefier.json rewrital (${exception})`); + } } const withFocusedWindow = (block) => {