pkg runutil, func IsFNLHost() 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) 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) 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
pkg runutil, var CommandTimedOutErr error
