Skip to content

Latest commit

 

History

History
28 lines (22 loc) · 1.06 KB

README.md

File metadata and controls

28 lines (22 loc) · 1.06 KB

shell Build Status GoDoc

Generate Shell Commands in Go, sprintf Style. Inspired by libphutil.

Quick example:

// Generates shell command to find number of go files on a remote machine
host := "foo.com"
findCmd := shell.Sprintf("find . -iname %s | wc -l", "*.go")
remoteCmd := shell.Sprintf("ssh ubuntu@%s %s", host, findCmd)
fmt.Println(remoteCmd)
// Output: ssh ubuntu@foo.com 'find . -iname '\''*.go'\'' | wc -l'

Also slightly extends Sprintf syntax to allow easily passing in slices. This is a common use case when interacting with commands that take in a list of arguments:

// Support for passing in a slice of arguments
gitcmd := shell.Sprintf("git add %S", []string{"foo.go", "bar.go", "test data"})
fmt.Println(gitcmd)
// Output: git add foo.go bar.go 'test data'

See https://godoc.org/github.com/keegancsmith/shell for more information.