Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
后端镜像
Tabby
提交
7566bcaa
T
Tabby
项目概览
后端镜像
/
Tabby
通知
33
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Tabby
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7566bcaa
编写于
10月 25, 2018
作者:
E
Eugene Pankov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
custom environment vars (fixes #346)
上级
4682ef72
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
51 addition
and
2 deletion
+51
-2
terminus-terminal/src/components/shellSettingsTab.component.pug
...us-terminal/src/components/shellSettingsTab.component.pug
+16
-0
terminus-terminal/src/components/shellSettingsTab.component.ts
...nus-terminal/src/components/shellSettingsTab.component.ts
+32
-0
terminus-terminal/src/config.ts
terminus-terminal/src/config.ts
+2
-1
terminus-terminal/src/services/terminal.service.ts
terminus-terminal/src/services/terminal.service.ts
+1
-1
未找到文件。
terminus-terminal/src/components/shellSettingsTab.component.pug
浏览文件 @
7566bcaa
...
...
@@ -51,3 +51,19 @@ h3.mb-3 Shell
.input-group-btn
button.btn.btn-secondary((click)='pickWorkingDirectory()')
i.fa.fa-folder-open
.form-line
.header
.title Environment
.description Inject additional environment variables
div
.mb-2.d-flex.align-items-center(*ngFor='let pair of environmentVars')
input.form-control.w-50([(ngModel)]='pair.key', (blur)='saveEnvironment()', placeholder='Variable name')
input.form-control.w-50.mr-1([(ngModel)]='pair.value', (blur)='saveEnvironment()', placeholder='Value')
button.btn.btn-secondary((click)='removeEnvironmentVar(pair.key)')
i.fa.fa-trash-o
button.btn.btn-secondary((click)='addEnvironmentVar()')
i.fa.fa-plus.mr-2
span Add
terminus-terminal/src/components/shellSettingsTab.component.ts
浏览文件 @
7566bcaa
import
{
Component
,
Inject
}
from
'
@angular/core
'
import
{
Subscription
}
from
'
rxjs
'
import
{
ConfigService
,
ElectronService
}
from
'
terminus-core
'
import
{
IShell
,
ShellProvider
,
SessionPersistenceProvider
}
from
'
../api
'
...
...
@@ -9,6 +10,9 @@ export class ShellSettingsTabComponent {
shells
:
IShell
[]
=
[]
persistenceProviders
:
SessionPersistenceProvider
[]
environmentVars
:
{
key
:
string
,
value
:
string
}[]
=
[]
private
configSubscription
:
Subscription
constructor
(
public
config
:
ConfigService
,
private
electron
:
ElectronService
,
...
...
@@ -16,12 +20,20 @@ export class ShellSettingsTabComponent {
@
Inject
(
SessionPersistenceProvider
)
persistenceProviders
:
SessionPersistenceProvider
[],
)
{
this
.
persistenceProviders
=
this
.
config
.
enabledServices
(
persistenceProviders
).
filter
(
x
=>
x
.
isAvailable
())
config
.
store
.
terminal
.
environment
=
config
.
store
.
terminal
.
environment
||
{}
this
.
reloadEnvironment
()
this
.
configSubscription
=
config
.
changed$
.
subscribe
(()
=>
this
.
reloadEnvironment
())
}
async
ngOnInit
()
{
this
.
shells
=
(
await
Promise
.
all
(
this
.
config
.
enabledServices
(
this
.
shellProviders
).
map
(
x
=>
x
.
provide
()))).
reduce
((
a
,
b
)
=>
a
.
concat
(
b
))
}
ngOnDestroy
()
{
this
.
configSubscription
.
unsubscribe
()
}
pickWorkingDirectory
()
{
let
shell
=
this
.
shells
.
find
(
x
=>
x
.
id
===
this
.
config
.
store
.
terminal
.
shell
)
console
.
log
(
shell
)
...
...
@@ -33,4 +45,24 @@ export class ShellSettingsTabComponent {
this
.
config
.
store
.
terminal
.
workingDirectory
=
paths
[
0
]
}
}
reloadEnvironment
()
{
this
.
environmentVars
=
Object
.
entries
(
this
.
config
.
store
.
terminal
.
environment
).
map
(([
k
,
v
])
=>
({
key
:
k
,
value
:
v
as
string
}))
}
saveEnvironment
()
{
this
.
config
.
store
.
terminal
.
environment
=
{}
for
(
let
pair
of
this
.
environmentVars
)
{
this
.
config
.
store
.
terminal
.
environment
[
pair
.
key
]
=
pair
.
value
}
}
addEnvironmentVar
()
{
this
.
environmentVars
.
push
({
key
:
''
,
value
:
''
})
}
removeEnvironmentVar
(
key
:
string
)
{
this
.
environmentVars
=
this
.
environmentVars
.
filter
(
x
=>
x
.
key
!==
key
)
this
.
saveEnvironment
()
}
}
terminus-terminal/src/config.ts
浏览文件 @
7566bcaa
...
...
@@ -48,7 +48,8 @@ export class TerminalConfigProvider extends ConfigProvider {
'
#ffffff
'
,
]
},
customColorSchemes
:
[]
customColorSchemes
:
[],
environment
:
{},
},
}
...
...
terminus-terminal/src/services/terminal.service.ts
浏览文件 @
7566bcaa
...
...
@@ -52,7 +52,7 @@ export class TerminalService {
let
shells
=
await
this
.
shells$
.
toPromise
()
shell
=
shells
.
find
(
x
=>
x
.
id
===
this
.
config
.
store
.
terminal
.
shell
)
||
shells
[
0
]
}
let
env
:
any
=
Object
.
assign
({},
process
.
env
,
shell
.
env
||
{})
let
env
:
any
=
Object
.
assign
({},
process
.
env
,
shell
.
env
||
{}
,
this
.
config
.
store
.
terminal
.
environment
||
{}
)
this
.
logger
.
log
(
`Starting shell
${
shell
.
name
}
`
,
shell
)
let
sessionOptions
=
await
this
.
sessions
.
prepareNewSession
({
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录