| // +build !windows,!linux,!darwin,!openbsd,!freebsd,!netbsd |
| |
| package liner |
| |
| import ( |
| "bufio" |
| "errors" |
| "os" |
| ) |
| |
| // State represents an open terminal |
| type State struct { |
| commonState |
| } |
| |
| // Prompt displays p, and then waits for user input. Prompt does not support |
| // line editing on this operating system. |
| func (s *State) Prompt(p string) (string, error) { |
| return s.promptUnsupported(p) |
| } |
| |
| // PasswordPrompt is not supported in this OS. |
| func (s *State) PasswordPrompt(p string) (string, error) { |
| return "", errors.New("liner: function not supported in this terminal") |
| } |
| |
| // NewLiner initializes a new *State |
| // |
| // Note that this operating system uses a fallback mode without line |
| // editing. Patches welcome. |
| func NewLiner() *State { |
| var s State |
| s.r = bufio.NewReader(os.Stdin) |
| return &s |
| } |
| |
| // Close returns the terminal to its previous mode |
| func (s *State) Close() error { |
| return nil |
| } |
| |
| // TerminalSupported returns false because line editing is not |
| // supported on this platform. |
| func TerminalSupported() bool { |
| return false |
| } |
| |
| type noopMode struct{} |
| |
| func (n noopMode) ApplyMode() error { |
| return nil |
| } |
| |
| // TerminalMode returns a noop InputModeSetter on this platform. |
| func TerminalMode() (ModeApplier, error) { |
| return noopMode{}, nil |
| } |