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  }