Documentation ¶
Index ¶
- func CaptureStandardOutput(f func() interface{}) (string, interface{})
- func WithCustomStderr(writers ...io.Writer) func(c *Command)
- func WithCustomStdout(writers ...io.Writer) func(c *Command)
- func WithEnvironmentVariables(env EnvVars) func(c *Command)
- func WithInheritedEnvironment(env EnvVars) func(c *Command)
- func WithStandardStreams(c *Command)
- func WithTimeout(t time.Duration) func(c *Command)
- func WithWorkingDir(dir string) func(c *Command)
- func WithoutTimeout(c *Command)
- type Command
- type EnvVars
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CaptureStandardOutput ¶ added in v1.2.0
func CaptureStandardOutput(f func() interface{}) (string, interface{})
CaptureStandardOutput allows to capture the output which will be written to os.Stdout and os.Stderr. It returns the captured output and the return value of the called function
func WithCustomStderr ¶ added in v1.2.0
WithCustomStderr allows to add custom writers to stderr
func WithCustomStdout ¶ added in v1.2.0
WithCustomStdout allows to add custom writers to stdout
func WithEnvironmentVariables ¶ added in v1.2.0
WithEnvironmentVariables sets environment variables for the executed command
func WithInheritedEnvironment ¶ added in v1.2.0
WithInheritedEnvironment uses the env from the current process and allow to add more variables.
func WithStandardStreams ¶
func WithStandardStreams(c *Command)
WithStandardStreams is used as an option by the NewCommand constructor function and writes the output streams to stderr and stdout of the operating system
Example:
c := cmd.NewCommand("echo hello", cmd.WithStandardStreams) c.Execute()
func WithTimeout ¶ added in v1.1.0
WithTimeout sets the timeout of the command
Example:
cmd.NewCommand("sleep 10;", cmd.WithTimeout(500))
func WithWorkingDir ¶ added in v1.1.0
WithWorkingDir sets the current working directory
func WithoutTimeout ¶ added in v1.1.0
func WithoutTimeout(c *Command)
WithoutTimeout disables the timeout for the command
Types ¶
type Command ¶
type Command struct { Command string Env []string Dir string Timeout time.Duration StderrWriter io.Writer StdoutWriter io.Writer WorkingDir string // contains filtered or unexported fields }
Command represents a single command which can be executed
func NewCommand ¶
NewCommand creates a new command You can add option with variadic option argument Default timeout is set to 30 minutes
Example:
c := cmd.NewCommand("echo hello", function (c *Command) { c.WorkingDir = "/tmp" }) c.Execute()
or you can use existing options functions
c := cmd.NewCommand("echo hello", cmd.WithStandardStreams) c.Execute()
func (*Command) AddEnv ¶
AddEnv adds an environment variable to the command If a variable gets passed like ${VAR_NAME} the env variable will be read out by the current shell
func (*Command) Combined ¶ added in v1.2.0
Combined returns the combined output of stderr and stdout according to their timeline
func (*Command) Execute ¶
Execute executes the command and writes the results into it's own instance The results can be received with the Stdout(), Stderr() and ExitCode() methods