command

package
v0.0.0-...-a078c60 Latest Latest
Warning

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

Go to latest
Published: Aug 11, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func RunStdout

func RunStdout(
	ctx context.Context,
	container app.EnvStdioContainer,
	runner Runner,
	name string,
	args ...string,
) ([]byte, error)

RunStdout is a convenience function that attaches the container environment, stdin, and stderr, and returns the stdout as a byte slice.

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

func RunWithArgs(args ...string) RunOption

RunWithArgs returns a new RunOption that sets the arguments other than the name.

The default is no arguments.

func RunWithDir

func RunWithDir(dir string) RunOption

RunWithDir returns a new RunOption that sets the working directory.

The default is the current working directory.

func RunWithEnv

func RunWithEnv(env map[string]string) RunOption

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

func RunWithStderr(stderr io.Writer) RunOption

RunWithStderr returns a new RunOption that sets the stderr.

The default is the null device (os.DevNull).

func RunWithStdin

func RunWithStdin(stdin io.Reader) RunOption

RunWithStdin returns a new RunOption that sets the stdin.

The default is ioextended.DiscardReader.

func RunWithStdout

func RunWithStdout(stdout io.Writer) RunOption

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.

func NewRunner

func NewRunner(options ...RunnerOption) Runner

NewRunner returns a new Runner.

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).

Jump to

Keyboard shortcuts

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