Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Process ¶
type Process interface { // Wait blocks to wait for the process to exit. It will attempt to kill the // process if the passed context expires. Wait(ctx context.Context) error }
Process represents a background process.
type RunOption ¶
type RunOption func(*execOptions)
RunOption is an option for Run.
func RunWithArgs ¶
RunWithArgs returns a new RunOption that sets the arguments other than the name.
The default is no arguments.
func RunWithDir ¶
RunWithDir returns a new RunOption that sets the working directory.
The default is the current working directory.
func RunWithEnv ¶
RunWithEnv returns a new RunOption that sets the environment variables.
The default is to use the single environment variable __EMPTY_ENV__=1 as we cannot explicitly set an empty environment with the exec package.
func RunWithStderr ¶
RunWithStderr returns a new RunOption that sets the stderr.
The default is the null device (os.DevNull).
func RunWithStdin ¶
RunWithStdin returns a new RunOption that sets the stdin.
The default is ioextended.DiscardReader.
func RunWithStdout ¶
RunWithStdout returns a new RunOption that sets the stdout.
The default is the null device (os.DevNull).
type Runner ¶
type Runner interface { // Run runs the external command. It blocks until the command exits. // // This should be used instead of exec.CommandContext(...).Run(). Run(ctx context.Context, name string, options ...RunOption) error // Start runs the external command, returning a [Process] handle to track // its progress. // // This should be used instead of exec.Command(...).Start(). Start(name string, options ...StartOption) (Process, error) }
Runner runs external commands.
A Runner will limit the number of concurrent commands, as well as explicitly set stdin, stdout, stderr, and env to nil/empty values if not set with options.
All external commands in buf MUST use command.Runner instead of exec.Command, exec.CommandContext.
type RunnerOption ¶
type RunnerOption func(*runner)
RunnerOption is an option for a new Runner.
func RunnerWithParallelism ¶
func RunnerWithParallelism(parallelism int) RunnerOption
RunnerWithParallelism returns a new Runner that sets the number of external commands that can be run concurrently.
The default is thread.Parallelism().
type StartOption ¶
type StartOption func(*execOptions)
StartOption is an option for Start.
func StartWithArgs ¶
func StartWithArgs(args ...string) StartOption
StartWithArgs returns a new RunOption that sets the arguments other than the name.
The default is no arguments.
func StartWithDir ¶
func StartWithDir(dir string) StartOption
StartWithDir returns a new RunOption that sets the working directory.
The default is the current working directory.
func StartWithEnv ¶
func StartWithEnv(env map[string]string) StartOption
StartWithEnv returns a new RunOption that sets the environment variables.
The default is to use the single environment variable __EMPTY_ENV__=1 as we cannot explicitly set an empty environment with the exec package.
func StartWithStderr ¶
func StartWithStderr(stderr io.Writer) StartOption
StartWithStderr returns a new RunOption that sets the stderr.
The default is the null device (os.DevNull).
func StartWithStdin ¶
func StartWithStdin(stdin io.Reader) StartOption
StartWithStdin returns a new RunOption that sets the stdin.
The default is ioextended.DiscardReader.
func StartWithStdout ¶
func StartWithStdout(stdout io.Writer) StartOption
StartWithStdout returns a new RunOption that sets the stdout.
The default is the null device (os.DevNull).