@@ -144,8 +144,11 @@ export class MacExternalTerminalService extends ExternalTerminalService implemen
144
144
}
145
145
146
146
if ( envVars ) {
147
- for ( let key in envVars ) {
148
- const value = envVars [ key ] ;
147
+ // merge environment variables into a copy of the process.env
148
+ const env = Object . assign ( { } , getSanitizedEnvironment ( process ) , envVars ) ;
149
+
150
+ for ( let key in env ) {
151
+ const value = env [ key ] ;
149
152
if ( value === null ) {
150
153
osaArgs . push ( '-u' ) ;
151
154
osaArgs . push ( key ) ;
@@ -190,7 +193,8 @@ export class MacExternalTerminalService extends ExternalTerminalService implemen
190
193
if ( cwd ) {
191
194
args . push ( cwd ) ;
192
195
}
193
- const child = spawner . spawn ( '/usr/bin/open' , args ) ;
196
+ const env = getSanitizedEnvironment ( process ) ;
197
+ const child = spawner . spawn ( '/usr/bin/open' , args , { cwd, env } ) ;
194
198
child . on ( 'error' , e ) ;
195
199
child . on ( 'exit' , ( ) => c ( ) ) ;
196
200
} ) ;
@@ -226,8 +230,9 @@ export class LinuxExternalTerminalService extends ExternalTerminalService implem
226
230
const bashCommand = `${ quote ( args ) } ; echo; read -p "${ LinuxExternalTerminalService . WAIT_MESSAGE } " -n1;` ;
227
231
termArgs . push ( `''${ bashCommand } ''` ) ; // wrapping argument in two sets of ' because node is so "friendly" that it removes one set...
228
232
233
+
229
234
// merge environment variables into a copy of the process.env
230
- const env = Object . assign ( { } , process . env , envVars ) ;
235
+ const env = Object . assign ( { } , getSanitizedEnvironment ( process ) , envVars ) ;
231
236
232
237
// delete environment variables that have a null value
233
238
Object . keys ( env ) . filter ( v => env [ v ] === null ) . forEach ( key => delete env [ key ] ) ;
0 commit comments