diff --git a/src/browser/atom-window.coffee b/src/browser/atom-window.coffee index 16456d274..a346f5c77 100644 --- a/src/browser/atom-window.coffee +++ b/src/browser/atom-window.coffee @@ -49,6 +49,7 @@ class AtomWindow loadSettings.resourcePath = @resourcePath loadSettings.devMode ?= false loadSettings.safeMode ?= false + loadSettings.atomHome = process.env.ATOM_HOME # Only send to the first non-spec window created if @constructor.includeShellLoadTime and not @isSpec diff --git a/static/index.js b/static/index.js index c21cd6327..2a5bcad3a 100644 --- a/static/index.js +++ b/static/index.js @@ -1,5 +1,4 @@ (function () { - var fs = require('fs-plus') var path = require('path') var FileSystemBlobStore = require('../src/file-system-blob-store') var NativeCompileCache = require('../src/native-compile-cache') @@ -16,11 +15,6 @@ console.error('Unhandled promise rejection %o with error: %o', promise, error) }) - // Ensure ATOM_HOME is always set before anything else is required - // This is because of a difference in Linux not inherited between browser and render processes - // issue #5142 - setupAtomHome() - blobStore = FileSystemBlobStore.load( path.join(process.env.ATOM_HOME, 'blob-store/') ) @@ -92,24 +86,6 @@ require('ipc').sendChannel('window-command', 'window:loaded') } - function setupAtomHome () { - if (!process.env.ATOM_HOME) { - var home - if (process.platform === 'win32') { - home = process.env.USERPROFILE - } else { - home = process.env.HOME - } - var atomHome = path.join(home, '.atom') - try { - atomHome = fs.realpathSync(atomHome) - } catch (error) { - // Ignore since the path might just not exist yet. - } - process.env.ATOM_HOME = atomHome - } - } - function setupCsonCache (cacheDir) { require('season').setCacheDir(path.join(cacheDir, 'cson')) } @@ -193,6 +169,20 @@ }, false) } + var setupAtomHome = function () { + if (process.env.ATOM_HOME) { + return + } + + // Ensure ATOM_HOME is always set before anything else is required + // This is because of a difference in Linux not inherited between browser and render processes + // https://github.com/atom/atom/issues/5412 + if (loadSettings && loadSettings.atomHome) { + process.env.ATOM_HOME = loadSettings.atomHome + } + } + parseLoadSettings() + setupAtomHome() setupWindowBackground() })()