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 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(*os.File, 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) 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
