A simple wrapper for Go's command execution packages.
go get github.com/alexellis/go-execute
See Godoc github.com/alexellis/go-execute
Feel free to add a link to your own projects in a PR.
This example captures the values from stdout and stderr without relaying to the console. This means the values can be inspected and used for automation.
package main import ( "fmt" execute "github.com/alexellis/go-execute/pkg/v1" ) func main() { cmd := execute.ExecTask{ Command: "docker", Args: []string{"version"}, StreamStdio: false, } res, err := cmd.Execute() if err != nil { panic(err) } if res.ExitCode != 0 { panic("Non-zero exit code: " + res.Stderr) } fmt.Printf("stdout: %s, stderr: %s, exit-code: %d\n", res.Stdout, res.Stderr, res.ExitCode) }package main import ( "fmt" execute "github.com/alexellis/go-execute/pkg/v1" ) func main() { ls := execute.ExecTask{ Command: "ls", Args: []string{"-l"}, Shell: true, } res, err := ls.Execute() if err != nil { panic(err) } fmt.Printf("stdout: %q, stderr: %q, exit-code: %d\n", res.Stdout, res.Stderr, res.ExitCode) }package main import ( "fmt" execute "github.com/alexellis/go-execute/pkg/v1" ) func main() { ls := execute.ExecTask{ Command: "exit 1", Shell: true, } res, err := ls.Execute() if err != nil { panic(err) } fmt.Printf("stdout: %q, stderr: %q, exit-code: %d\n", res.Stdout, res.Stderr, res.ExitCode) }Commits must be signed off with git commit -s
License: MIT