Categorygithub.com/cortexlabs/go-input
modulepackage
0.0.0-20200503032952-8b67a7a7b28d
Repository: https://github.com/cortexlabs/go-input.git
Documentation: pkg.go.dev

# README

go-input Go Documentation Travis MIT License

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.

Install

Use go get to install this package:

$ go get github.com/tcnksm/go-input

Usage

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.

Contribution

  1. Fork (https://github.com/tcnksm/go-input/fork)
  2. Create a feature branch
  3. Commit your changes
  4. Rebase your local changes against the master branch
  5. Run test suite with the go test ./... command and confirm that it passes
  6. Run gofmt -s
  7. Create new Pull Request

Author

Taichi Nakashima

# Functions

DefaultUI returns default UI.

# Constants

LineSep is the separator for windows or unix systems.

# Variables

Errs are error returned by input functions.
No description provided by the author
No description provided by the author
No description provided by the author

# Structs

Options is structure contains option for input functions.
UI is user-interface of input and output.

# Type aliases

ValidateFunc is function to validate the user input.