Version: v1.1.10 Latest Latest

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

Go to latest
Published: Jul 13, 2021 License: MPL-2.0 Imports: 8 Imported by: 31




This section is empty.


This section is empty.


func BuildExec added in v0.7.8

func BuildExec(cmd Cmd) (*exec.Cmd, *bytes.Buffer)

BuildExec translates FOSSA exec structures into standard library exec commands.

func Run

func Run(cmd Cmd) (string, string, error)

Run executes a `Cmd`, retries the specified amount, and checks for command timeout if specified.

func Shell added in v0.7.0

func Shell(cmd Cmd) (stdout, stderr string, err error)

func Which

func Which(arg string, cmds ...string) (cmd string, output string, err error)

Which picks a command out of a list of candidates.

func WhichArgs

func WhichArgs(argv []string, cmds ...string) (cmd string, output string, err error)

WhichArgs is `Which` but passes multiple arguments to each candidate. The default timeout is set to 5 minutes to kill hanging commands.

func WhichWithResolver

func WhichWithResolver(cmds []string, resolve WhichResolver) (string, string, error)

WhichWithResolver is `Which` with a custom resolution strategy.


type Cmd

type Cmd struct {
	Name    string   // Executable name.
	Argv    []string // Executable arguments.
	Command string   // Shell command.
	Dir     string   // The Command's working directory.

	Timeout string // Specifies the amount of time a command is allowed to run.
	Retries int    // Amount of times a command can be retried.

	// If neither Env nor WithEnv are set, the environment is inherited from os.Environ().
	Env     map[string]string // If set, the command's environment is _set_ to Env.
	WithEnv map[string]string // If set, the command's environment is _added_ to WithEnv.

Cmd represents a single command. If Name and Argv are set, this is treated as an executable. If Command is set, this is treated as a shell command.

type WhichResolver

type WhichResolver func(cmd string) (output string, ok bool, err error)

A WhichResolver takes a candidate command and returns whether to choose it.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL