go-input
is a Go package for reading user input in console.
Here is the some good points compared with other/similar packages. It can handle SIGINT
(Ctrl+C
) while reading input and returns error. It allows to change IO interface as io.Writer
and io.Reader
so it's easy to test of your go program with this package (This package is also well-tested!). It also supports raw mode input (reading input without prompting) for multiple platform (Darwin, Linux and Windows). Not only this it allows to prompt complex input via Option struct.
The documentation is on GoDoc.
Use go get
to install this package:
$ go get github.com/tcnksm/go-input
The following is the simple example,
ui := &input.UI{
Writer: os.Stdout,
Reader: os.Stdin,
}
query := "What is your name?"
name, err := ui.Ask(query, &input.Options{
Default: "tcnksm",
Required: true,
Loop: true,
})
You can check other examples in here.
- Fork (https://github.com/tcnksm/go-input/fork)
- Create a feature branch
- Commit your changes
- Rebase your local changes against the master branch
- Run test suite with the
go test ./...
command and confirm that it passes - Run
gofmt -s
- Create new Pull Request