https://github.com/keegancsmith/shell
Generate Shell Commands in Go, sprintf Style
https://github.com/keegancsmith/shell
Last synced: 2 months ago
JSON representation
Generate Shell Commands in Go, sprintf Style
- Host: GitHub
- URL: https://github.com/keegancsmith/shell
- Owner: keegancsmith
- License: mit
- Created: 2016-01-12T22:35:39.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2016-02-08T23:17:11.000Z (over 9 years ago)
- Last Synced: 2025-03-26T12:21:24.496Z (3 months ago)
- Language: Go
- Homepage:
- Size: 5.86 KB
- Stars: 77
- Watchers: 6
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
shell [](https://travis-ci.org/) [](https://godoc.org/github.com/keegancsmith/shell)
======Generate Shell Commands in Go, sprintf Style. Inspired by libphutil.
Quick example:
```go
// 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 [email protected] '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:```go
// 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.