pkg gosh, func BuildGoPkg(*Shell, string, string, ...string) string
pkg gosh, func InitChildMain()
pkg gosh, func InitMain()
pkg gosh, func NewPipeline(*Cmd, ...*Cmd) *Pipeline
pkg gosh, func NewShell(TB) *Shell
pkg gosh, func RegisterFunc(string, interface{}) *Func
pkg gosh, func SendVars(map[string]string)
pkg gosh, method (*Cmd) AddStderrWriter(io.Writer)
pkg gosh, method (*Cmd) AddStdoutWriter(io.Writer)
pkg gosh, method (*Cmd) AwaitVars(...string) map[string]string
pkg gosh, method (*Cmd) Clone() *Cmd
pkg gosh, method (*Cmd) CombinedOutput() string
pkg gosh, method (*Cmd) Pid() int
pkg gosh, method (*Cmd) Run()
pkg gosh, method (*Cmd) SetStdinReader(io.Reader)
pkg gosh, method (*Cmd) Shell() *Shell
pkg gosh, method (*Cmd) Signal(os.Signal)
pkg gosh, method (*Cmd) Start()
pkg gosh, method (*Cmd) StderrPipe() io.ReadCloser
pkg gosh, method (*Cmd) StdinPipe() io.WriteCloser
pkg gosh, method (*Cmd) Stdout() string
pkg gosh, method (*Cmd) StdoutPipe() io.ReadCloser
pkg gosh, method (*Cmd) StdoutStderr() (string, string)
pkg gosh, method (*Cmd) Terminate(os.Signal)
pkg gosh, method (*Cmd) Wait()
pkg gosh, method (*Pipeline) Clone() *Pipeline
pkg gosh, method (*Pipeline) Cmds() []*Cmd
pkg gosh, method (*Pipeline) CombinedOutput() string
pkg gosh, method (*Pipeline) PipeCombinedOutput(*Cmd)
pkg gosh, method (*Pipeline) PipeStderr(*Cmd)
pkg gosh, method (*Pipeline) PipeStdout(*Cmd)
pkg gosh, method (*Pipeline) Run()
pkg gosh, method (*Pipeline) Signal(os.Signal)
pkg gosh, method (*Pipeline) Start()
pkg gosh, method (*Pipeline) Stdout() string
pkg gosh, method (*Pipeline) StdoutStderr() (string, string)
pkg gosh, method (*Pipeline) Terminate(os.Signal)
pkg gosh, method (*Pipeline) Wait()
pkg gosh, method (*Shell) AddCleanupHandler(func())
pkg gosh, method (*Shell) Cleanup()
pkg gosh, method (*Shell) Cmd(string, ...string) *Cmd
pkg gosh, method (*Shell) FuncCmd(*Func, ...interface{}) *Cmd
pkg gosh, method (*Shell) HandleError(error)
pkg gosh, method (*Shell) HandleErrorWithSkip(error, int)
pkg gosh, method (*Shell) MakeTempDir() string
pkg gosh, method (*Shell) MakeTempFile() *os.File
pkg gosh, method (*Shell) Move(string, string)
pkg gosh, method (*Shell) Ok()
pkg gosh, method (*Shell) Popd()
pkg gosh, method (*Shell) Pushd(string)
pkg gosh, method (*Shell) Wait()
pkg gosh, type Cmd struct
pkg gosh, type Cmd struct, Args []string
pkg gosh, type Cmd struct, Err error
pkg gosh, type Cmd struct, ExitAfter time.Duration
pkg gosh, type Cmd struct, ExitErrorIsOk bool
pkg gosh, type Cmd struct, ExtraFiles []*os.File
pkg gosh, type Cmd struct, IgnoreClosedPipeError bool
pkg gosh, type Cmd struct, IgnoreParentExit bool
pkg gosh, type Cmd struct, OutputDir string
pkg gosh, type Cmd struct, Path string
pkg gosh, type Cmd struct, PropagateOutput bool
pkg gosh, type Cmd struct, Vars map[string]string
pkg gosh, type Func struct
pkg gosh, type Pipeline struct
pkg gosh, type Shell struct
pkg gosh, type Shell struct, Args []string
pkg gosh, type Shell struct, ChildOutputDir string
pkg gosh, type Shell struct, ContinueOnError bool
pkg gosh, type Shell struct, Err error
pkg gosh, type Shell struct, PropagateChildOutput bool
pkg gosh, type Shell struct, Vars map[string]string
pkg gosh, type TB interface { FailNow, Logf }
pkg gosh, type TB interface, FailNow()
pkg gosh, type TB interface, Logf(string, ...interface{})
