Documentation ¶
Overview ¶
Package executers contains general purpose (shell) command executing objects.
Package executers contains general purpose (shell) command executing objects. executers_deps contains platform dependencies that should be mockable in tests
Index ¶
- func CreateScriptFile(scriptPath string, commands []string) (err error)
- func ExecuteCommand(log log.T, cancelFlag task.CancelFlag, workingDir string, ...) (exitCode int, err error)
- func QuotePsString(str string) (result string)
- func QuoteShString(str string) (result string)
- func StartCommand(log log.T, cancelFlag task.CancelFlag, workingDir string, ...) (process *os.Process, exitCode int, err error)
- type MockCommandExecuter
- func (m *MockCommandExecuter) Execute(log log.T, workingDir string, stdoutFilePath string, stderrFilePath string, ...) (stdout io.Reader, stderr io.Reader, exitCode int, errs []error)
- func (m *MockCommandExecuter) NewExecute(log log.T, workingDir string, stdoutWriter io.Writer, stderrWriter io.Writer, ...) (exitCode int, err error)
- func (m *MockCommandExecuter) StartExe(log log.T, workingDir string, stdoutWriter io.Writer, stderrWriter io.Writer, ...) (process *os.Process, exitCode int, errs error)
- type ShellCommandExecuter
- func (ShellCommandExecuter) Execute(log log.T, workingDir string, stdoutFilePath string, stderrFilePath string, ...) (stdout io.Reader, stderr io.Reader, exitCode int, errs []error)
- func (ShellCommandExecuter) NewExecute(log log.T, workingDir string, stdoutWriter io.Writer, stderrWriter io.Writer, ...) (exitCode int, err error)
- func (ShellCommandExecuter) StartExe(log log.T, workingDir string, stdoutWriter io.Writer, stderrWriter io.Writer, ...) (process *os.Process, exitCode int, err error)
- type T
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateScriptFile ¶
CreateScriptFile creates a script containing the given commands.
func ExecuteCommand ¶
func ExecuteCommand(log log.T, cancelFlag task.CancelFlag, workingDir string, stdoutWriter io.Writer, stderrWriter io.Writer, executionTimeout int, commandName string, commandArguments []string, ) (exitCode int, err error)
ExecuteCommand executes the given commands using the given working directory. Standard output and standard error are sent to the given writers.
func QuotePsString ¶
QuotePsString replaces the quote
func QuoteShString ¶
QuoteShString replaces the quote
func StartCommand ¶
func StartCommand(log log.T, cancelFlag task.CancelFlag, workingDir string, stdoutWriter io.Writer, stderrWriter io.Writer, commandName string, commandArguments []string, ) (process *os.Process, exitCode int, err error)
StartCommand starts the given commands using the given working directory. Standard output and standard error are sent to the given writers.
Types ¶
type MockCommandExecuter ¶
MockCommandExecuter mocks a command executer.
func (*MockCommandExecuter) Execute ¶
func (m *MockCommandExecuter) Execute(log log.T, workingDir string, stdoutFilePath string, stderrFilePath string, cancelFlag task.CancelFlag, executionTimeout int, commandName string, commandArguments []string, ) (stdout io.Reader, stderr io.Reader, exitCode int, errs []error)
Execute is a mocked method that just returns what mock tells it to.
func (*MockCommandExecuter) NewExecute ¶
func (m *MockCommandExecuter) NewExecute( log log.T, workingDir string, stdoutWriter io.Writer, stderrWriter io.Writer, cancelFlag task.CancelFlag, executionTimeout int, commandName string, commandArguments []string, ) (exitCode int, err error)
NewExecute is a mocked method that just returns what mock tells it to.
func (*MockCommandExecuter) StartExe ¶
func (m *MockCommandExecuter) StartExe(log log.T, workingDir string, stdoutWriter io.Writer, stderrWriter io.Writer, cancelFlag task.CancelFlag, commandName string, commandArguments []string, ) (process *os.Process, exitCode int, errs error)
StartExe is a mocked method that just returns what mock tells it to.
type ShellCommandExecuter ¶
type ShellCommandExecuter struct { }
ShellCommandExecuter is specially added for testing purposes
func (ShellCommandExecuter) Execute ¶
func (ShellCommandExecuter) Execute( log log.T, workingDir string, stdoutFilePath string, stderrFilePath string, cancelFlag task.CancelFlag, executionTimeout int, commandName string, commandArguments []string, ) (stdout io.Reader, stderr io.Reader, exitCode int, errs []error)
Execute executes a list of shell commands in the given working directory. If no file path is provided for either stdout or stderr, output will be written to a byte buffer. Returns readers for the standard output and standard error streams, process exit code, and a set of errors. The errors need not be fatal - the output streams may still have data even though some errors are reported. For example, if the command got killed while executing, the streams will have whatever data was printed up to the kill point, and the errors will indicate that the process got terminated.
For files, the reader returned will not contain more than appconfig.MaxStdoutLength and appconfig.MaxStderrLength respectively so if the caller needs to process more output than that, it should open its own reader on the output files.
For byte buffer output, the reader will be a reader over the buffer, which will accumulate the entire output. Be careful not to use the byte buffer approach for extremely large output (or unknown output) because it could take up a large amount of memory.
func (ShellCommandExecuter) NewExecute ¶
func (ShellCommandExecuter) NewExecute( log log.T, workingDir string, stdoutWriter io.Writer, stderrWriter io.Writer, cancelFlag task.CancelFlag, executionTimeout int, commandName string, commandArguments []string, ) (exitCode int, err error)
NewExecute executes a list of shell commands in the given working directory and provides the stdout and stderr writers.
func (ShellCommandExecuter) StartExe ¶
func (ShellCommandExecuter) StartExe( log log.T, workingDir string, stdoutWriter io.Writer, stderrWriter io.Writer, cancelFlag task.CancelFlag, commandName string, commandArguments []string, ) (process *os.Process, exitCode int, err error)
StartExe starts a list of shell commands in the given working directory. Returns process started, an exit code (0 if successfully launch, 1 if error launching process), and a set of errors. The errors need not be fatal - the output streams may still have data even though some errors are reported. For example, if the command got killed while executing, the streams will have whatever data was printed up to the kill point, and the errors will indicate that the process got terminated.
type T ¶
type T interface { //TODO: Remove Execute and rename NewExecute to Execute. Execute(log.T, string, string, string, task.CancelFlag, int, string, []string) (io.Reader, io.Reader, int, []error) NewExecute(log.T, string, io.Writer, io.Writer, task.CancelFlag, int, string, []string) (int, error) StartExe(log.T, string, io.Writer, io.Writer, task.CancelFlag, string, []string) (*os.Process, int, error) }
T is the interface type for ShellCommandExecuter.