Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
0a81c69e
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0a81c69e
编写于
4月 28, 2016
作者:
J
Joao Moreno
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
dont assign process.env when spawned from cli
fixes #1033
上级
a05cb186
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
18 addition
and
10 deletion
+18
-10
src/vs/base/node/env.ts
src/vs/base/node/env.ts
+1
-6
src/vs/workbench/electron-browser/main.ts
src/vs/workbench/electron-browser/main.ts
+4
-1
src/vs/workbench/electron-main/cli.ts
src/vs/workbench/electron-main/cli.ts
+4
-1
src/vs/workbench/electron-main/main.ts
src/vs/workbench/electron-main/main.ts
+9
-2
未找到文件。
src/vs/base/node/env.ts
浏览文件 @
0a81c69e
...
...
@@ -5,7 +5,6 @@
'
use strict
'
;
import
platform
=
require
(
'
vs/base/common/platform
'
);
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
cp
=
require
(
'
child_process
'
);
...
...
@@ -13,11 +12,7 @@ export interface IEnv {
[
key
:
string
]:
string
;
}
export
function
getUserEnvironment
():
TPromise
<
IEnv
>
{
if
(
platform
.
isWindows
)
{
return
TPromise
.
as
({});
}
export
function
getUnixUserEnvironment
():
TPromise
<
IEnv
>
{
return
new
TPromise
((
c
,
e
)
=>
{
let
child
=
cp
.
spawn
(
process
.
env
.
SHELL
,
[
'
-ilc
'
,
'
env
'
],
{
detached
:
true
,
...
...
src/vs/workbench/electron-browser/main.ts
浏览文件 @
0a81c69e
...
...
@@ -49,7 +49,10 @@ export interface IMainEnvironment extends IEnvironment {
export
function
startup
(
environment
:
IMainEnvironment
,
globalSettings
:
IGlobalSettings
):
winjs
.
TPromise
<
void
>
{
// Inherit the user environment
assign
(
process
.
env
,
environment
.
userEnv
);
// TODO@Joao: this inheritance should **not** happen here!
if
(
process
.
env
[
'
VSCODE_CLI
'
]
!==
'
1
'
)
{
assign
(
process
.
env
,
environment
.
userEnv
);
}
// Shell Configuration
let
shellConfiguration
:
IConfiguration
=
{
...
...
src/vs/workbench/electron-main/cli.ts
浏览文件 @
0a81c69e
...
...
@@ -16,7 +16,10 @@ export function main(args: string[]) {
}
else
if
(
argv
.
version
)
{
console
.
log
(
pkg
.
version
);
}
else
{
const
env
=
assign
({},
process
.
env
);
const
env
=
assign
({},
process
.
env
,
{
// this will signal Code that it was spawned from this module
'
VSCODE_CLI
'
:
'
1
'
});
delete
env
[
'
ATOM_SHELL_INTERNAL_RUN_AS_NODE
'
];
const
child
=
spawn
(
process
.
execPath
,
args
,
{
...
...
src/vs/workbench/electron-main/main.ts
浏览文件 @
0a81c69e
...
...
@@ -17,7 +17,7 @@ import { VSCodeMenu } from 'vs/workbench/electron-main/menus';
import
{
ISettingsService
,
SettingsManager
}
from
'
vs/workbench/electron-main/settings
'
;
import
{
IUpdateService
,
UpdateManager
}
from
'
vs/workbench/electron-main/update-manager
'
;
import
{
Server
,
serve
,
connect
}
from
'
vs/base/parts/ipc/node/ipc.net
'
;
import
{
getU
serEnvironment
}
from
'
vs/base/node/env
'
;
import
{
getU
nixUserEnvironment
,
IEnv
}
from
'
vs/base/node/env
'
;
import
{
TPromise
}
from
'
vs/base/common/winjs.base
'
;
import
{
AskpassChannel
}
from
'
vs/workbench/parts/git/common/gitIpc
'
;
import
{
GitAskpassService
}
from
'
vs/workbench/parts/git/electron-main/askpassService
'
;
...
...
@@ -266,11 +266,18 @@ services.set(ISettingsService, new SyncDescriptor(SettingsManager));
const
instantiationService
=
new
InstantiationService
(
services
);
function
getUserEnvironment
():
TPromise
<
IEnv
>
{
return
platform
.
isWindows
?
TPromise
.
as
({})
:
getUnixUserEnvironment
();
}
// On some platforms we need to manually read from the global environment variables
// and assign them to the process environment (e.g. when doubleclick app on Mac)
getUserEnvironment
()
.
then
(
userEnv
=>
{
assign
(
process
.
env
,
userEnv
);
if
(
process
.
env
[
'
VSCODE_CLI
'
]
!==
'
1
'
)
{
assign
(
process
.
env
,
userEnv
);
}
// Make sure the NLS Config travels to the rendered process
// See also https://github.com/Microsoft/vscode/issues/4558
userEnv
[
'
VSCODE_NLS_CONFIG
'
]
=
process
.
env
[
'
VSCODE_NLS_CONFIG
'
];
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录