diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/lib/tempdir.js | 21 | ||||
| -rw-r--r-- | app/main.js | 11 |
2 files changed, 24 insertions, 8 deletions
diff --git a/app/lib/tempdir.js b/app/lib/tempdir.js new file mode 100644 index 0000000000..e9f65cd03b --- /dev/null +++ b/app/lib/tempdir.js @@ -0,0 +1,21 @@ +// @flow + +import path from 'path'; + +export function getSystemTemporaryDirectory() { + switch(process.platform) { + case 'win32': { + const windowsPath = process.env.windir; + if(windowsPath) { + return path.join(windowsPath, 'Temp'); + } else { + throw new Error('Missing windir in environment variables.'); + } + } + case 'darwin': + case 'linux': + return '/tmp'; + default: + throw new Error(`Not implemented for ${process.platform}`); + } +} diff --git a/app/main.js b/app/main.js index 3c539dacab..f097521c87 100644 --- a/app/main.js +++ b/app/main.js @@ -10,6 +10,7 @@ import shellescape from 'shell-escape'; import { version } from '../package.json'; import { parseIpcCredentials } from './lib/backend'; import { resolveBin } from './lib/proc'; +import { getSystemTemporaryDirectory } from './lib/tempdir'; import { canTrustRpcAddressFile } from './lib/rpc-file-security'; import { execFile } from 'child_process'; import uuid from 'uuid'; @@ -18,17 +19,11 @@ import type { TrayIconType } from './lib/tray-icon-manager'; const isDevelopment = (process.env.NODE_ENV === 'development'); const isMacOS = (process.platform === 'darwin'); -const isLinux = (process.platform === 'linux'); // The name for application directory used for // scoping logs and user data in platform special folders const appDirectoryName = 'MullvadVPN'; - -const writableDirectory = isMacOS || isLinux - ? '/tmp' - : app.getPath('temp'); - -const rpcAddressFile = path.join(writableDirectory, '.mullvad_rpc_address'); +const rpcAddressFile = path.join(getSystemTemporaryDirectory(), '.mullvad_rpc_address'); let browserWindowReady = false; @@ -115,7 +110,7 @@ const appDelegate = { const logFiles = files.filter(file => file.endsWith('.log')) .map(f => path.join(appDelegate._logFileLocation, f)); - const reportPath = path.join(writableDirectory, uuid.v4() + '.log'); + const reportPath = path.join(app.getPath('temp'), uuid.v4() + '.log'); const binPath = resolveBin('problem-report'); let args = [ |
