From 907fbd5004fe306a98ef08b67587abfe0fedd586 Mon Sep 17 00:00:00 2001 From: WebFreak001 Date: Wed, 26 Apr 2017 19:34:19 +0200 Subject: [PATCH] Process environment extends original one now #98 --- src/backend/mi2/mi2.ts | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/backend/mi2/mi2.ts b/src/backend/mi2/mi2.ts index 4345268..84e562a 100644 --- a/src/backend/mi2/mi2.ts +++ b/src/backend/mi2/mi2.ts @@ -27,8 +27,27 @@ function couldBeOutput(line: string) { const trace = false; export class MI2 extends EventEmitter implements IBackend { - constructor(public application: string, public preargs: string[], public extraargs: string[], public procEnv: any) { + constructor(public application: string, public preargs: string[], public extraargs: string[], procEnv: any) { super(); + + if (procEnv) { + var env = {}; + // Duplicate process.env so we don't override it + for (var key in process.env) + if (process.env.hasOwnProperty(key)) + env[key] = process.env[key]; + + // Overwrite with user specified variables + for (var key in procEnv) { + if (procEnv.hasOwnProperty(key)) { + if (procEnv === null) + delete env[key]; + else + env[key] = procEnv[key]; + } + } + this.procEnv = env; + } } load(cwd: string, target: string, procArgs: string, separateConsole: string): Thenable { @@ -693,6 +712,7 @@ export class MI2 extends EventEmitter implements IBackend { printCalls: boolean; debugOutput: boolean; + public procEnv: any; protected isSSH: boolean; protected sshReady: boolean; protected currentToken: number = 1;