posh/pkg/readline/arg.go
2023-03-20 11:40:09 +01:00

35 lines
527 B
Go

package readline
import (
"strings"
)
type Arg string
func (a Arg) String() string {
return string(a)
}
func (a Arg) IsPipe() bool {
return a == "|"
}
func (a Arg) IsPass() bool {
return a == "--"
}
func (a Arg) IsFlag() bool {
return strings.HasPrefix(a.String(), "-") && len(a) > 1
}
func (a Arg) IsRedirect() bool {
return a == ">" || a == ">>" ||
a == "2>" || a == "2>>" ||
a == "&>" || a == "&>>" ||
a == "2>&1"
}
func (a Arg) IsAdditional() bool {
return a.IsPass() || a.IsPipe() || a.IsRedirect()
}