diff options
author | Kristóf Marussy <kristof@marussy.com> | 2021-05-27 20:37:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-27 20:37:32 +0200 |
commit | 38de1e0cf41b9d5527d405952e2d66e983ca2a5c (patch) | |
tree | 0815e4e56dfecbdf1c8775a3954c601031b7a944 /src/config.js | |
parent | Use electronuserland base image so that we don't need to manually track all s... (diff) | |
download | ferdium-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.js | 18 |
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 | ||
199 | export const isDevMode = !app.isPackaged; | 199 | const ELECTRON_IS_DEV_VAR = 'ELECTRON_IS_DEV'; |
200 | const NODE_ENV_VAR = 'NODE_ENV'; | ||
201 | |||
202 | // TODO Move this to environment.js and remove the re-export from there. | ||
203 | export 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 | })(); | ||
200 | if (isDevMode) { | 216 | if (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 | } |