Documentation ¶
Index ¶
- func Run(cmdStr string) (result string)
- type CommandBuilder
- func (cb *CommandBuilder) Add(cmds ...string) *CommandBuilder
- func (cb *CommandBuilder) Concurr() *CommandResult
- func (cb *CommandBuilder) Pipe() *PipedCommandResult
- func (cb *CommandBuilder) Run() *CommandResult
- func (cb *CommandBuilder) Start() *CommandResult
- func (cb *CommandBuilder) WithPolicy(policyMask CommandPolicy) *CommandBuilder
- type CommandPolicy
- type CommandResult
- type PipedCommandResult
- type Proc
- func (p *Proc) Command() *osexec.Cmd
- func (p *Proc) Err() error
- func (p *Proc) ExitCode() int
- func (p *Proc) Exited() bool
- func (p *Proc) GetErrorPipe() io.Reader
- func (p *Proc) GetInputPipe() io.Writer
- func (p *Proc) GetOutputPipe() io.Reader
- func (p *Proc) ID() int
- func (p *Proc) IsSuccess() bool
- func (p *Proc) Kill() *Proc
- func (p *Proc) Out() io.Reader
- func (p *Proc) Peek() *Proc
- func (p *Proc) Result() string
- func (p *Proc) Run() *Proc
- func (p *Proc) SetStderr(out io.Writer)
- func (p *Proc) SetStdin(in io.Reader)
- func (p *Proc) SetStdout(out io.Writer)
- func (p *Proc) Start() *Proc
- func (p *Proc) Stderr() io.Writer
- func (p *Proc) Stdin() io.Reader
- func (p *Proc) Stdout() io.Writer
- func (p *Proc) SysTime() time.Duration
- func (p *Proc) UserTime() time.Duration
- func (p *Proc) Wait() *Proc
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type CommandBuilder ¶ added in v0.1.1
type CommandBuilder struct {
// contains filtered or unexported fields
}
func Commands ¶ added in v0.1.1
func Commands(cmds ...string) *CommandBuilder
Commands creates a *CommandBuilder used to collect command strings to be executed.
func (*CommandBuilder) Add ¶ added in v0.1.1
func (cb *CommandBuilder) Add(cmds ...string) *CommandBuilder
Add adds a new command string to the builder
func (*CommandBuilder) Concurr ¶ added in v0.2.0
func (cb *CommandBuilder) Concurr() *CommandResult
Concurr starts all processes concurrently and does not wait for the commands to complete. It is equivalent to Commands(...).WithPolicy(ConcurrentExecPolicy).Start().
func (*CommandBuilder) Pipe ¶ added in v0.2.0
func (cb *CommandBuilder) Pipe() *PipedCommandResult
Pipe executes each command serially chaining the combinedOutput of previous command to the inputPipe of next command.
func (*CommandBuilder) Run ¶ added in v0.1.1
func (cb *CommandBuilder) Run() *CommandResult
Run executes all commands successively and waits for all of the result. The result of each individual command can be accessed from CommandResult.Procs[] after the execution completes. If policy == ExitOnErrPolicy, the execution will stop on the first error encountered, otherwise it will continue. Processes with errors can be accessed from CommandResult.ErrProcs.
func (*CommandBuilder) Start ¶ added in v0.1.1
func (cb *CommandBuilder) Start() *CommandResult
Start starts all processes sequentially by default, or concurrently if ConcurrentExecPolicy is set, and does not wait for the commands to complete. Use CommandResult.Wait to wait for the processes to complete. Then, the result of each command can be accessed from CommandResult.Procs[] or CommandResult.ErrProcs to access failed processses. If policy == ExitOnErrPolicy, the execution will halt on the first error encountered, otherwise it will continue.
func (*CommandBuilder) WithPolicy ¶ added in v0.1.1
func (cb *CommandBuilder) WithPolicy(policyMask CommandPolicy) *CommandBuilder
WithPolicy sets one or more command policy mask values, i.e. (CmdOnErrContinue | CmdExecConcurrent)
type CommandPolicy ¶ added in v0.1.1
type CommandPolicy byte
const ( ExitOnErrPolicy CommandPolicy = 1 << iota ConcurrentExecPolicy )
type CommandResult ¶ added in v0.2.0
type CommandResult struct {
// contains filtered or unexported fields
}
CommandResult stores results of executed commands using the CommandBuilder
func (*CommandResult) ErrProcs ¶ added in v0.2.0
func (cr *CommandResult) ErrProcs() []*Proc
func (*CommandResult) Procs ¶ added in v0.2.0
func (cr *CommandResult) Procs() []*Proc
func (*CommandResult) Wait ¶ added in v0.2.0
func (cr *CommandResult) Wait() *CommandResult
type PipedCommandResult ¶ added in v0.2.0
type PipedCommandResult struct {
// contains filtered or unexported fields
}
func (*PipedCommandResult) ErrProcs ¶ added in v0.2.0
func (cr *PipedCommandResult) ErrProcs() []*Proc
func (*PipedCommandResult) LastProc ¶ added in v0.2.0
func (cr *PipedCommandResult) LastProc() *Proc
func (*PipedCommandResult) Procs ¶ added in v0.2.0
func (cr *PipedCommandResult) Procs() []*Proc
type Proc ¶
type Proc struct {
// contains filtered or unexported fields
}
Proc stores process info when running a process
func NewProc ¶ added in v0.1.1
NewProc sets up command string to be started as an OS process, however does not start the process.
func RunProc ¶
RunProc starts a new process and waits for its completion. Use Proc.Out() or Proc.Result() to access the combined result from stdout and stderr.
func StartProc ¶
StartProc starts an OS process (setup a combined output of stdout, stderr) and does not wait for it to complete. You must follow this with either proc.Wait() to wait for result directly. Otherwise, call proc.Out() or proc.Result() which automatically waits and gather result.
func (*Proc) GetErrorPipe ¶ added in v0.2.0
GetErrorPipe returns a stream where the process error can be read from
func (*Proc) GetInputPipe ¶ added in v0.2.0
GetInputPipe returns a stream where the process input can be written to
func (*Proc) GetOutputPipe ¶ added in v0.2.0
GetOutputPipe returns a stream where the process output can be read from
func (*Proc) Out ¶
Out waits, after StartProc or Proc.Start has been called, for the cmd to complete and returns the combined result (Stdout and Stderr) as a single reader to be streamed.
func (*Proc) Result ¶
Result waits, after proc.Start or proc.StartProc has been called, for the cmd to complete and returns the combined stdout and stderr result as a string value.
func (*Proc) Run ¶ added in v0.2.0
Run starts and wait for a process to complete. Before calling p.Run(), setup proper access to the process' input/output (i.e. stdin,stdout, stderr)
func (*Proc) SetStderr ¶ added in v0.2.0
SetStderr sets a stream where the process can write its errors to
func (*Proc) SetStdin ¶ added in v0.2.0
SetStdin sets a stream for the process to read its input from
func (*Proc) SetStdout ¶ added in v0.2.0
SetStdout sets a stream where the process can write its output to
func (*Proc) Start ¶ added in v0.1.1
Start starts the associated command as an OS process and does not wait for its result. Ensure proper access to the process' input/output (stdin,stdout,stderr) has been setup prior to calling p.Start(). Use p.Err() to access any error that may have occured during execution.