From 86026c08181b69997a840c8f7d550e858d0647c1 Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 4 Aug 2020 09:05:01 -0400 Subject: [PATCH] consolidate error handling Signed-off-by: Sebastian Malton --- src/main/index.ts | 6 +----- src/main/shell-sync.ts | 43 +++++++++++++++++++++++------------------- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/main/index.ts b/src/main/index.ts index 478992201d..73a5843840 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -30,11 +30,7 @@ if (app.commandLine.getSwitchValue("proxy-server") !== "") { } async function main() { - try { - await shellSync(app.getLocale()); - } catch (err) { - logger.warn("shellSync: ", err); - } + await shellSync(); const workingDir = path.join(app.getPath("appData"), appName); app.setName(appName); diff --git a/src/main/shell-sync.ts b/src/main/shell-sync.ts index c7cf753e16..05ded6e2f6 100644 --- a/src/main/shell-sync.ts +++ b/src/main/shell-sync.ts @@ -1,5 +1,7 @@ import shellEnv from "shell-env" import os from "os"; +import { app } from "electron"; +import logger from "./logger"; interface Env { [key: string]: string; @@ -9,27 +11,30 @@ interface Env { * shellSync loads what would have been the environment if this application was * run from the command line, into the process.env object. This is especially * useful on macos where this always needs to be done. - * @param locale Should be electron's `app.getLocale()` */ -export async function shellSync(locale: string) { +export async function shellSync() { const { shell } = os.userInfo(); - const env: Env = JSON.parse(JSON.stringify(await shellEnv(shell))) - if (!env.LANG) { - // the LANG env var expects an underscore instead of electron's dash - env.LANG = `${locale.replace('-', '_')}.UTF-8`; - } else if (!env.LANG.endsWith(".UTF-8")) { - env.LANG += ".UTF-8" + try { + const env: Env = JSON.parse(JSON.stringify(await shellEnv(shell))) + if (!env.LANG) { + // the LANG env var expects an underscore instead of electron's dash + env.LANG = `${app.getLocale().replace('-', '_')}.UTF-8`; + } else if (!env.LANG.endsWith(".UTF-8")) { + env.LANG += ".UTF-8" + } + + // Overwrite PATH on darwin + if (process.env.NODE_ENV === "production" && process.platform === "darwin") { + process.env["PATH"] = env.PATH + } + + // The spread operator allows joining of objects. The precedence is last to first. + process.env = { + ...env, + ...process.env, + }; + } catch (error) { + logger.error(`shellEnv: ${error}`) } - - // Overwrite PATH on darwin - if (process.env.NODE_ENV === "production" && process.platform === "darwin") { - process.env["PATH"] = env.PATH - } - - // The spread operator allows joining of objects. The precedence is last to first. - process.env = { - ...env, - ...process.env, - }; }