aboutsummaryrefslogtreecommitdiffstats
path: root/src/config.js
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-05-27 20:37:32 +0200
committerLibravatar GitHub <noreply@github.com>2021-05-27 20:37:32 +0200
commit38de1e0cf41b9d5527d405952e2d66e983ca2a5c (patch)
tree0815e4e56dfecbdf1c8775a3954c601031b7a944 /src/config.js
parentUse electronuserland base image so that we don't need to manually track all s... (diff)
downloadferdium-app-38de1e0cf41b9d5527d405952e2d66e983ca2a5c.tar.gz
ferdium-app-38de1e0cf41b9d5527d405952e2d66e983ca2a5c.tar.zst
ferdium-app-38de1e0cf41b9d5527d405952e2d66e983ca2a5c.zip
Environmental variables for dev/production mode (#1455)
* Restore ELECTRON_IS_DEV environment variable As part of migrating to @electron/remote from electron.remote, 296ce5ce6 removed the electron-is-dev package and with it the support of selecting dev/production mode with the ELECTRON_IS_DEV environmental variable. This commit restores support for this variable. Because even the newest version of the electron-is-dev package breaks in renderer processes, we instead query the environment ourselves. * Add support for NODE_ENV variable Also support NODE_ENV for specifying dev mode in addition to the ELECTRON_IS_DEV variable. This variable is used by e.g., the packaging in Arch Linux to trigger production mode with an explicit electron command line invocation: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=ferdi-git&id=61dc59e5eb19a2c9e8f9edaf0a63aaae72990a0b#n109 * Refactor environmental variable handling
Diffstat (limited to 'src/config.js')
-rw-r--r--src/config.js18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/config.js b/src/config.js
index 127dcd2dc..189959a4d 100644
--- a/src/config.js
+++ b/src/config.js
@@ -196,7 +196,23 @@ if (process.env.FERDI_APPDATA_DIR != null) {
196 app.setPath('userData', path.join(app.getPath('appData'), app.name)); 196 app.setPath('userData', path.join(app.getPath('appData'), app.name));
197} 197}
198 198
199export const isDevMode = !app.isPackaged; 199const ELECTRON_IS_DEV_VAR = 'ELECTRON_IS_DEV';
200const NODE_ENV_VAR = 'NODE_ENV';
201
202// TODO Move this to environment.js and remove the re-export from there.
203export const isDevMode = (() => {
204 const isEnvVarSet = name => name in process.env;
205 if (isEnvVarSet(ELECTRON_IS_DEV_VAR)) {
206 // Copied from https://github.com/sindresorhus/electron-is-dev/blob/f05330b856782dac7987b10859bfd95ea6a187a6/index.js
207 // but electron-is-dev breaks in a renderer process, so we use the app import from above instead.
208 const electronIsDev = process.env[ELECTRON_IS_DEV_VAR];
209 return electronIsDev === 'true' || Number.parseInt(electronIsDev, 10) === 1;
210 }
211 if (isEnvVarSet(NODE_ENV_VAR)) {
212 return process.env[NODE_ENV_VAR] === 'development';
213 }
214 return !app.isPackaged;
215})();
200if (isDevMode) { 216if (isDevMode) {
201 app.setPath('userData', path.join(app.getPath('appData'), `${app.name}Dev`)); 217 app.setPath('userData', path.join(app.getPath('appData'), `${app.name}Dev`));
202} 218}