parse: fix parsing stdin args
License: MIT Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Christian Couder committed
May 17, 2015 at 23:43 UTC
942e96400bfceba3ef7b4e57002c44d8a718ecbf
1 file changed
+4
-4
commands/cli/parse.go
+4
-4
@@ -250,11 +250,11 @@ func parseArgs(inputs []string, stdin *os.File, argDefs []cmds.Argument, recursi
250
251
var err error
252
if argDef.Type == cmds.ArgString {
253
- if stdin == nil {
253
+ if stdin == nil || !argDef.SupportsStdin {
254
// add string values
255
stringArgs, inputs = appendString(stringArgs, inputs)
256
257
- } else if argDef.SupportsStdin {
257
+ } else {
258
if len(inputs) > 0 {
259
// don't use stdin if we have inputs
260
stdin = nil
@@ -267,14 +267,14 @@ func parseArgs(inputs []string, stdin *os.File, argDefs []cmds.Argument, recursi
267
}
268
}
269
} else if argDef.Type == cmds.ArgFile {
270
- if stdin == nil {
270
+ if stdin == nil || !argDef.SupportsStdin {
271
// treat stringArg values as file paths
272
fileArgs, inputs, err = appendFile(fileArgs, inputs, argDef, recursive)
273
if err != nil {
274
return nil, nil, err
275
}
276
277
- } else if argDef.SupportsStdin {
277
+ } else {
278
if len(inputs) > 0 {
279
// don't use stdin if we have inputs
280
stdin = nil