From 0095c779b2be93c1a9a6afaf2cbbda245d66cf20 Mon Sep 17 00:00:00 2001 From: Lauri Nevala Date: Tue, 4 Aug 2020 10:24:11 +0300 Subject: [PATCH 1/5] Fix getKubeConfigLocal() (#635) --- src/common/kube-helpers.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common/kube-helpers.ts b/src/common/kube-helpers.ts index 3df03a8211..3709f0ac94 100644 --- a/src/common/kube-helpers.ts +++ b/src/common/kube-helpers.ts @@ -16,7 +16,7 @@ function resolveTilde(filePath: string) { export function loadConfig(pathOrContent?: string): KubeConfig { const kc = new KubeConfig(); - + if (fse.pathExistsSync(pathOrContent)) { kc.loadFromFile(path.resolve(resolveTilde(pathOrContent))); } else { @@ -160,7 +160,7 @@ export async function getKubeConfigLocal(): Promise { const file = await readFile(configFile, "utf8"); const obj = yaml.safeLoad(file); if (obj.contexts) { - obj.contexts = obj.context.filter((ctx: any) => ctx?.context?.cluster && ctx?.name) + obj.contexts = obj.contexts.filter((ctx: any) => ctx?.context?.cluster && ctx?.name) } return yaml.safeDump(obj); } catch (err) { From c70564e96296083ad2c861b7d4c030169b031f3f Mon Sep 17 00:00:00 2001 From: Lauri Nevala Date: Tue, 4 Aug 2020 10:25:31 +0300 Subject: [PATCH 2/5] Fix Kubectl.getDownloadMirror (#629) Signed-off-by: Lauri Nevala --- src/main/kubectl.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kubectl.ts b/src/main/kubectl.ts index 6a2d18e864..ee1c0efdc7 100644 --- a/src/main/kubectl.ts +++ b/src/main/kubectl.ts @@ -289,7 +289,7 @@ export class Kubectl { } protected getDownloadMirror() { - const mirror = packageMirrors.get(userStore.preferences.downloadMirror) + const mirror = packageMirrors.get(userStore.preferences?.downloadMirror) if (mirror) { return mirror } From d9230538443e7b24dcb26a0d929a5eddff9b506b Mon Sep 17 00:00:00 2001 From: Lauri Nevala Date: Tue, 4 Aug 2020 10:28:27 +0300 Subject: [PATCH 3/5] Fix getFreePort() (#627) Signed-off-by: Lauri Nevala --- src/main/port.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/port.ts b/src/main/port.ts index a938ff4ae3..b253d3590a 100644 --- a/src/main/port.ts +++ b/src/main/port.ts @@ -6,7 +6,8 @@ import logger from "./logger" export async function getFreePort(): Promise { logger.debug("Lookup new free port.."); return new Promise((resolve, reject) => { - const server = net.createServer().unref().listen({ port: 0 }); + const server = net.createServer() + server.unref() server.on("listening", () => { const port = (server.address() as AddressInfo).port server.close(() => resolve(port)); @@ -16,5 +17,6 @@ export async function getFreePort(): Promise { logger.error(`Can't resolve new port: "${error}"`); reject(error); }); + server.listen({ host: "127.0.0.1", port: 0 }) }) } From 65df0c810a69f975fea497b527012bff36242976 Mon Sep 17 00:00:00 2001 From: Lauri Nevala Date: Tue, 4 Aug 2020 11:33:24 +0300 Subject: [PATCH 4/5] Mock imported styles for jest (#628) Signed-off-by: Lauri Nevala --- __mocks__/styleMock.ts | 1 + package.json | 3 +++ 2 files changed, 4 insertions(+) create mode 100644 __mocks__/styleMock.ts diff --git a/__mocks__/styleMock.ts b/__mocks__/styleMock.ts new file mode 100644 index 0000000000..a099545376 --- /dev/null +++ b/__mocks__/styleMock.ts @@ -0,0 +1 @@ +module.exports = {}; \ No newline at end of file diff --git a/package.json b/package.json index efcf47fed8..9983c3eb66 100644 --- a/package.json +++ b/package.json @@ -67,6 +67,9 @@ "testEnvironment": "node", "transform": { "^.+\\.tsx?$": "ts-jest" + }, + "moduleNameMapper": { + "\\.(css|scss)$": "/__mocks__/styleMock.ts" } }, "build": { From 1f5acdb9cd77b79ef43cb9f90a34ae200e2deece Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Tue, 4 Aug 2020 10:25:52 -0400 Subject: [PATCH 5/5] catch and log error from shell sync (#630) * catch and log error from shell sync Signed-off-by: Sebastian Malton Co-authored-by: Sebastian Malton --- src/main/index.ts | 2 +- src/main/shell-sync.ts | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/index.ts b/src/main/index.ts index f608490ed1..73a5843840 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -30,7 +30,7 @@ if (app.commandLine.getSwitchValue("proxy-server") !== "") { } async function main() { - shellSync(app.getLocale()); + 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 101fd46bc9..373d0a36ba 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,14 +11,21 @@ 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 function shellSync(locale: string) { +export async function shellSync() { const { shell } = os.userInfo(); - const env: Env = JSON.parse(JSON.stringify(shellEnv.sync(shell))) + + let envVars = {}; + try { + envVars = await shellEnv(shell); + } catch (error) { + logger.error(`shellEnv: ${error}`) + } + + const env: Env = JSON.parse(JSON.stringify(envVars)); if (!env.LANG) { // the LANG env var expects an underscore instead of electron's dash - env.LANG = `${locale.replace('-', '_')}.UTF-8`; + env.LANG = `${app.getLocale().replace('-', '_')}.UTF-8`; } else if (!env.LANG.endsWith(".UTF-8")) { env.LANG += ".UTF-8" }