提交 a5d36034 编写于 作者: M Mislav Marohnić

[api] Add `--raw-field` that has no special treatment for "@"

上级 1567d0c4
......@@ -19,6 +19,7 @@ var cmdApi = &Command{
## Options:
-X, --method <METHOD>
-F, --field <KEY-VALUE>
-f, --raw-field <KEY-VALUE>
-t, --flat
--cache <TTL>
`,
......@@ -46,22 +47,13 @@ func apiCommand(cmd *Command, args *Args) {
for _, val := range args.Flag.AllValues("--field") {
parts := strings.SplitN(val, "=", 2)
if len(parts) >= 2 {
value := parts[1]
if strings.HasPrefix(value, "@") {
file := strings.TrimPrefix(value, "@")
var content []byte
var err error
if file == "-" {
content, err = ioutil.ReadAll(os.Stdin)
} else {
content, err = ioutil.ReadFile(file)
}
if err != nil {
utils.Check(err)
}
value = string(content)
}
params[parts[0]] = value
params[parts[0]] = valueOrFileContents(parts[1])
}
}
for _, val := range args.Flag.AllValues("--raw-field") {
parts := strings.SplitN(val, "=", 2)
if len(parts) >= 2 {
params[parts[0]] = parts[1]
}
}
......@@ -100,3 +92,22 @@ func apiCommand(cmd *Command, args *Args) {
args.NoForward()
}
func valueOrFileContents(value string) string {
if strings.HasPrefix(value, "@") {
file := strings.TrimPrefix(value, "@")
var content []byte
var err error
if file == "-" {
content, err = ioutil.ReadAll(os.Stdin)
} else {
content, err = ioutil.ReadFile(file)
}
if err != nil {
utils.Check(err)
}
return string(content)
} else {
return value
}
}
......@@ -50,10 +50,10 @@ Feature: hub api
:params => params.size
}
"""
When I successfully run `hub api -t -F name=Ed -F a=b=c hello/world`
When I successfully run `hub api -t -f name=@hubot -F a=b=c hello/world`
Then the output should contain exactly:
"""
.name Ed
.name @hubot
.value b=c
.params 2\n
"""
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册