exec

package
v0.0.0-...-10121ec Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 2, 2022 License: Apache-2.0, Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package exec provides an injectable interface and implementations for running commands.

Index

Constants

This section is empty.

Variables

View Source
var ErrExecutableNotFound = osexec.ErrNotFound

ErrExecutableNotFound is returned if the executable is not found.

Functions

This section is empty.

Types

type Cmd

type Cmd interface {
	// CombinedOutput runs the command and returns its combined standard output
	// and standard error.  This follows the pattern of package os/exec.
	CombinedOutput() ([]byte, error)
	SetDir(dir string)
}

Cmd is an interface that presents an API that is very similar to Cmd from os/exec. As more functionality is needed, this can grow. Since Cmd is a struct, we will have to replace fields with get/set method pairs.

func InitFakeCmd

func InitFakeCmd(fake *FakeCmd, cmd string, args ...string) Cmd

type ExitError

type ExitError interface {
	String() string
	Error() string
	Exited() bool
	ExitStatus() int
}

ExitError is an interface that presents an API similar to os.ProcessState, which is what ExitError from os/exec is. This is designed to make testing a bit easier and probably loses some of the cross-platform properties of the underlying library.

type FakeCmd

type FakeCmd struct {
	Argv                 []string
	CombinedOutputScript []FakeCombinedOutputAction
	CombinedOutputCalls  int
	CombinedOutputLog    [][]string
	Dirs                 []string
}

A simple scripted Cmd type.

func (*FakeCmd) CombinedOutput

func (fake *FakeCmd) CombinedOutput() ([]byte, error)

func (*FakeCmd) SetDir

func (fake *FakeCmd) SetDir(dir string)

type FakeCombinedOutputAction

type FakeCombinedOutputAction func() ([]byte, error)

type FakeCommandAction

type FakeCommandAction func(cmd string, args ...string) Cmd

type FakeExec

type FakeExec struct {
	CommandScript []FakeCommandAction
	CommandCalls  int
	LookPathFunc  func(string) (string, error)
}

A simple scripted Interface type.

func (*FakeExec) Command

func (fake *FakeExec) Command(cmd string, args ...string) Cmd

func (*FakeExec) LookPath

func (fake *FakeExec) LookPath(file string) (string, error)

type FakeExitError

type FakeExitError struct {
	Status int
}

A simple fake ExitError type.

func (*FakeExitError) Error

func (fake *FakeExitError) Error() string

func (*FakeExitError) ExitStatus

func (fake *FakeExitError) ExitStatus() int

func (*FakeExitError) Exited

func (fake *FakeExitError) Exited() bool

func (*FakeExitError) String

func (fake *FakeExitError) String() string

type Interface

type Interface interface {
	// Command returns a Cmd instance which can be used to run a single command.
	// This follows the pattern of package os/exec.
	Command(cmd string, args ...string) Cmd

	// LookPath wraps os/exec.LookPath
	LookPath(file string) (string, error)
}

Interface is an interface that presents a subset of the os/exec API. Use this when you want to inject fakeable/mockable exec behavior.

func New

func New() Interface

New returns a new Interface which will os/exec to run commands.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL