pkg runutil, func GetOriginalError(error) error
pkg runutil, func IsExist(error) 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 NewSequence(map[string]string, io.Reader, io.Writer, io.Writer, bool, bool, bool) Sequence
pkg runutil, func TranslateExitCode(error) error
pkg runutil, method (*Handle) Kill() error
pkg runutil, method (*Handle) Pid() int
pkg runutil, method (*Handle) Signal(os.Signal) error
pkg runutil, method (*Handle) Wait() error
pkg runutil, method (Sequence) AssertDirExists(string) Sequence
pkg runutil, method (Sequence) AssertFileExists(string) Sequence
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(io.Writer, io.Reader) (int64, error)
pkg runutil, method (Sequence) Create(string) (*os.File, error)
pkg runutil, method (Sequence) Dir(string) Sequence
pkg runutil, method (Sequence) Done() error
pkg runutil, method (Sequence) DryRun(bool) Sequence
pkg runutil, method (Sequence) Env(map[string]string) Sequence
pkg runutil, method (Sequence) Error() error
pkg runutil, method (Sequence) Fprintf(io.Writer, string, ...interface{}) Sequence
pkg runutil, method (Sequence) IsDir(string) (bool, error)
pkg runutil, method (Sequence) IsFile(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) RunOpts() (bool, bool)
pkg runutil, method (Sequence) SetEnv(map[string]string) Sequence
pkg runutil, method (Sequence) Start(string, ...string) (*Handle, error)
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) TempFile(string, string) (*os.File, 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, type Handle struct
pkg runutil, type Sequence struct
