parse: fix parsing stdin args

License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
This commit is contained in:
Christian Couder 2015-05-17 23:43:24 +02:00
parent 5503c4cc89
commit 942e96400b

View File

@ -250,11 +250,11 @@ func parseArgs(inputs []string, stdin *os.File, argDefs []cmds.Argument, recursi
var err error
if argDef.Type == cmds.ArgString {
if stdin == nil {
if stdin == nil || !argDef.SupportsStdin {
// add string values
stringArgs, inputs = appendString(stringArgs, inputs)
} else if argDef.SupportsStdin {
} else {
if len(inputs) > 0 {
// don't use stdin if we have inputs
stdin = nil
@ -267,14 +267,14 @@ func parseArgs(inputs []string, stdin *os.File, argDefs []cmds.Argument, recursi
}
}
} else if argDef.Type == cmds.ArgFile {
if stdin == nil {
if stdin == nil || !argDef.SupportsStdin {
// treat stringArg values as file paths
fileArgs, inputs, err = appendFile(fileArgs, inputs, argDef, recursive)
if err != nil {
return nil, nil, err
}
} else if argDef.SupportsStdin {
} else {
if len(inputs) > 0 {
// don't use stdin if we have inputs
stdin = nil