pkg runutil, func GetOriginalError(error) error
pkg runutil, func IsExist(error) bool
pkg runutil, func IsFNLHost() bool
pkg runutil, func IsNotExist(error) bool
pkg runutil, func IsPermission(error) bool
pkg runutil, func IsTimeout(error) bool
pkg runutil, func LookPath(string, map[string]string) (string, error)
pkg runutil, func NewRun(map[string]string, io.Reader, io.Writer, io.Writer, bool, bool, bool) *Run
pkg runutil, func NewSequence(map[string]string, io.Reader, io.Writer, io.Writer, bool, bool, bool) *Sequence
pkg runutil, func NewStart(map[string]string, io.Reader, io.Writer, io.Writer, bool, bool, bool) *Start
pkg runutil, method (*Run) Chdir(string) error
pkg runutil, method (*Run) Chmod(string, os.FileMode) error
pkg runutil, method (*Run) Command(string, ...string) error
pkg runutil, method (*Run) CommandWithOpts(Opts, string, ...string) error
pkg runutil, method (*Run) Copy(*os.File, io.Reader) (int64, error)
pkg runutil, method (*Run) Create(string) (*os.File, error)
pkg runutil, method (*Run) DirectoryExists(string) bool
pkg runutil, method (*Run) FileExists(string) bool
pkg runutil, method (*Run) Function(func() error, string, ...interface{}) error
pkg runutil, method (*Run) FunctionWithOpts(Opts, func() error, string, ...interface{}) error
pkg runutil, method (*Run) IsDir(string) (bool, error)
pkg runutil, method (*Run) Lstat(string) (os.FileInfo, error)
pkg runutil, method (*Run) MkdirAll(string, os.FileMode) error
pkg runutil, method (*Run) Open(string) (*os.File, error)
pkg runutil, method (*Run) OpenFile(string, int, os.FileMode) (*os.File, error)
pkg runutil, method (*Run) Output([]string)
pkg runutil, method (*Run) OutputWithOpts(Opts, []string)
pkg runutil, method (*Run) ReadDir(string) ([]os.FileInfo, error)
pkg runutil, method (*Run) ReadFile(string) ([]byte, error)
pkg runutil, method (*Run) Readlink(string) (string, error)
pkg runutil, method (*Run) Remove(string) error
pkg runutil, method (*Run) RemoveAll(string) error
pkg runutil, method (*Run) Rename(string, string) error
pkg runutil, method (*Run) Stat(string) (os.FileInfo, error)
pkg runutil, method (*Run) Symlink(string, string) error
pkg runutil, method (*Run) TempDir(string, string) (string, error)
pkg runutil, method (*Run) TempFile(string, string) (*os.File, error)
pkg runutil, method (*Run) TimedCommand(time.Duration, string, ...string) error
pkg runutil, method (*Run) TimedCommandWithOpts(time.Duration, Opts, string, ...string) error
pkg runutil, method (*Run) WriteFile(string, []byte, os.FileMode) error
pkg runutil, method (*Sequence) Call(func() error, string, ...interface{}) *Sequence
pkg runutil, method (*Sequence) Capture(io.Writer, io.Writer) *Sequence
pkg runutil, method (*Sequence) Chdir(string) *Sequence
pkg runutil, method (*Sequence) Chmod(string, os.FileMode) *Sequence
pkg runutil, method (*Sequence) Copy(*os.File, io.Reader) (int64, error)
pkg runutil, method (*Sequence) Create(string) (*os.File, error)
pkg runutil, method (*Sequence) DirectoryExists(string) (bool, error)
pkg runutil, method (*Sequence) Done() error
pkg runutil, method (*Sequence) Env(map[string]string) *Sequence
pkg runutil, method (*Sequence) Error() error
pkg runutil, method (*Sequence) FileExists(string) (bool, error)
pkg runutil, method (*Sequence) Fprintf(io.Writer, string, ...interface{}) *Sequence
pkg runutil, method (*Sequence) IsDir(string) (bool, error)
pkg runutil, method (*Sequence) Last(string, ...string) error
pkg runutil, method (*Sequence) Lstat(string) (os.FileInfo, error)
pkg runutil, method (*Sequence) MkdirAll(string, os.FileMode) *Sequence
pkg runutil, method (*Sequence) Open(string) (*os.File, error)
pkg runutil, method (*Sequence) OpenFile(string, int, os.FileMode) (*os.File, error)
pkg runutil, method (*Sequence) Output([]string) *Sequence
pkg runutil, method (*Sequence) Popd() *Sequence
pkg runutil, method (*Sequence) Pushd(string) *Sequence
pkg runutil, method (*Sequence) Read(io.Reader) *Sequence
pkg runutil, method (*Sequence) ReadDir(string) ([]os.FileInfo, error)
pkg runutil, method (*Sequence) ReadFile(string) ([]byte, error)
pkg runutil, method (*Sequence) Readlink(string) (string, error)
pkg runutil, method (*Sequence) Remove(string) *Sequence
pkg runutil, method (*Sequence) RemoveAll(string) *Sequence
pkg runutil, method (*Sequence) Rename(string, string) *Sequence
pkg runutil, method (*Sequence) Run(string, ...string) *Sequence
pkg runutil, method (*Sequence) Stat(string) (os.FileInfo, error)
pkg runutil, method (*Sequence) Symlink(string, string) *Sequence
pkg runutil, method (*Sequence) TempDir(string, string) (string, error)
pkg runutil, method (*Sequence) Timeout(time.Duration) *Sequence
pkg runutil, method (*Sequence) Verbose(bool) *Sequence
pkg runutil, method (*Sequence) WriteFile(string, []byte, os.FileMode) *Sequence
pkg runutil, method (*Start) Command(string, ...string) (*exec.Cmd, error)
pkg runutil, method (*Start) CommandWithOpts(Opts, string, ...string) (*exec.Cmd, error)
pkg runutil, method (Run) Opts() Opts
pkg runutil, method (Start) Opts() Opts
pkg runutil, type Opts struct
pkg runutil, type Opts struct, Color bool
pkg runutil, type Opts struct, Dir string
pkg runutil, type Opts struct, DryRun bool
pkg runutil, type Opts struct, Env map[string]string
pkg runutil, type Opts struct, Stderr io.Writer
pkg runutil, type Opts struct, Stdin io.Reader
pkg runutil, type Opts struct, Stdout io.Writer
pkg runutil, type Opts struct, Verbose bool
pkg runutil, type Run struct
pkg runutil, type Sequence struct
pkg runutil, type Start struct
