github.com/NeowayLabs/nash@v0.2.2-0.20200127205349-a227041ffd50/sh/shell.go (about) 1 package sh 2 3 import "io" 4 5 type ( 6 Runner interface { 7 Start() error 8 Wait() error 9 Results() []Obj 10 11 SetArgs([]Obj) error 12 SetEnviron([]string) 13 SetStdin(io.Reader) 14 SetStdout(io.Writer) 15 SetStderr(io.Writer) 16 17 StdoutPipe() (io.ReadCloser, error) 18 19 Stdin() io.Reader 20 Stdout() io.Writer 21 Stderr() io.Writer 22 } 23 24 FnArg struct { 25 Name string 26 IsVariadic bool 27 } 28 29 Fn interface { 30 Name() string 31 ArgNames() []FnArg 32 33 Runner 34 35 String() string 36 } 37 38 FnDef interface { 39 Name() string 40 ArgNames() []FnArg 41 Build() Fn 42 } 43 ) 44 45 func NewFnArg(name string, isVariadic bool) FnArg { 46 return FnArg{ 47 Name: name, 48 IsVariadic: isVariadic, 49 } 50 }