From 93e718a148588b7cc56f1e3e3183ca1000c13137 Mon Sep 17 00:00:00 2001 From: Makazzz Date: Sun, 27 Oct 2019 17:28:42 -0400 Subject: Add portable dir --- src/config.js | 12 ++++++++++++ src/index.js | 11 ++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/config.js b/src/config.js index 761d26eea..a7389b8bc 100644 --- a/src/config.js +++ b/src/config.js @@ -113,6 +113,18 @@ export const FILE_SYSTEM_SETTINGS_TYPES = [ export const LOCAL_SERVER = 'You are using Ferdi without a server'; +// Set app directory before loading user modules +if (process.env.FERDI_APPDATA_DIR != null) { + app.setPath('appData', process.env.FERDI_APPDATA_DIR); + app.setPath('userData', path.join(app.getPath('appData'))); +} else if (process.env.PORTABLE_EXECUTABLE_DIR != null) { + app.setPath('appData', process.env.PORTABLE_EXECUTABLE_DIR, `${app.getName()}AppData`); + app.setPath('userData', path.join(app.getPath('appData'), `${app.getName()}AppData`)); +} else if (process.platform === 'win32') { + app.setPath('appData', process.env.APPDATA); + app.setPath('userData', path.join(app.getPath('appData'), app.getName())); +} + export const SETTINGS_PATH = path.join(app.getPath('userData'), 'config'); // Replacing app.asar is not beautiful but unforunately necessary diff --git a/src/index.js b/src/index.js index fd96f8a49..3453b46f7 100644 --- a/src/index.js +++ b/src/index.js @@ -10,9 +10,14 @@ import path from 'path'; import windowStateKeeper from 'electron-window-state'; // Set app directory before loading user modules -if (process.env.FERDI_APPDATA_DIR || process.env.PORTABLE_EXECUTABLE_DIR) { - const appDataPath = process.env.FERDI_APPDATA_DIR || process.env.PORTABLE_EXECUTABLE_DIR - app.setPath('appData', appDataPath); +if (process.env.FERDI_APPDATA_DIR != null) { + app.setPath('appData', process.env.FERDI_APPDATA_DIR); + app.setPath('userData', path.join(app.getPath('appData'))); +} else if (process.env.PORTABLE_EXECUTABLE_DIR != null) { + app.setPath('appData', process.env.PORTABLE_EXECUTABLE_DIR, `${app.getName()}AppData`); + app.setPath('userData', path.join(app.getPath('appData'), `${app.getName()}AppData`)); +} else if (process.platform === 'win32') { + app.setPath('appData', process.env.APPDATA); app.setPath('userData', path.join(app.getPath('appData'), app.getName())); } -- cgit v1.2.3-70-g09d2