Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
G
go-ipfs
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
jihao
go-ipfs
Commits
6dd8aeb0
提交
6dd8aeb0
authored
5月 10, 2015
作者:
Juan Batiz-Benet
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
config set: allow arbitrary json input
This commit allows arbitrary json input to set. It also tests this with sharness.
上级
d6fc414b
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
27 行增加
和
2 行删除
+27
-2
config.go
core/commands/config.go
+13
-2
t0021-config.sh
test/sharness/t0021-config.sh
+14
-0
没有找到文件。
core/commands/config.go
浏览文件 @
6dd8aeb0
...
...
@@ -59,6 +59,7 @@ Set the value of the 'datastore.path' key:
},
Options
:
[]
cmds
.
Option
{
cmds
.
BoolOption
(
"bool"
,
"Set a boolean value"
),
cmds
.
BoolOption
(
"json"
,
"Parse stringified JSON"
),
},
Run
:
func
(
req
cmds
.
Request
,
res
cmds
.
Response
)
{
args
:=
req
.
Arguments
()
...
...
@@ -74,7 +75,17 @@ Set the value of the 'datastore.path' key:
var
output
*
ConfigField
if
len
(
args
)
==
2
{
value
:=
args
[
1
]
if
isbool
,
_
,
_
:=
req
.
Option
(
"bool"
)
.
Bool
();
isbool
{
if
parseJson
,
_
,
_
:=
req
.
Option
(
"json"
)
.
Bool
();
parseJson
{
var
jsonVal
interface
{}
if
err
:=
json
.
Unmarshal
([]
byte
(
value
),
&
jsonVal
);
err
!=
nil
{
err
=
fmt
.
Errorf
(
"failed to unmarshal json. %s"
,
err
)
res
.
SetError
(
err
,
cmds
.
ErrNormal
)
return
}
output
,
err
=
setConfig
(
r
,
key
,
jsonVal
)
}
else
if
isbool
,
_
,
_
:=
req
.
Option
(
"bool"
)
.
Bool
();
isbool
{
output
,
err
=
setConfig
(
r
,
key
,
value
==
"true"
)
}
else
{
output
,
err
=
setConfig
(
r
,
key
,
value
)
...
...
@@ -217,7 +228,7 @@ func getConfig(r repo.Repo, key string) (*ConfigField, error) {
func
setConfig
(
r
repo
.
Repo
,
key
string
,
value
interface
{})
(
*
ConfigField
,
error
)
{
err
:=
r
.
SetConfigKey
(
key
,
value
)
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"Failed to set config value: %s"
,
err
)
return
nil
,
fmt
.
Errorf
(
"Failed to set config value: %s
(maybe use --json?)
"
,
err
)
}
return
getConfig
(
r
,
key
)
}
...
...
test/sharness/t0021-config.sh
浏览文件 @
6dd8aeb0
...
...
@@ -36,6 +36,17 @@ test_config_cmd_set() {
'
}
# this is a bit brittle. the problem is we need to test
# with something that will be forced to unmarshal as a struct.
# (i.e. just setting 'ipfs config --json foo "[1, 2, 3]"') may
# set it as astring instead of proper json. We leverage the
# unmarshalling that has to happen.
CONFIG_SET_JSON_TEST
=
'{
"MDNS": {
"Enabled": true,
"Interval": 10
}
}'
test_config_cmd
()
{
test_config_cmd_set
"beep"
"boop"
...
...
@@ -43,6 +54,9 @@ test_config_cmd() {
test_config_cmd_set
"beep1"
"boop2"
test_config_cmd_set
"--bool"
"beep2"
"true"
test_config_cmd_set
"--bool"
"beep2"
"false"
test_config_cmd_set
"--json"
"beep3"
"true"
test_config_cmd_set
"--json"
"beep3"
"false"
test_config_cmd_set
"--json"
"Discovery"
"
$CONFIG_SET_JSON_TEST
"
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论