Gibheer
fa05045d31
This is the import from the separate monfront repository. The history could not be imported, but this should suffice.
77 lines
2.5 KiB
Go
77 lines
2.5 KiB
Go
// Copyright 2011 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Package terminal provides support functions for dealing with terminals, as
|
|
// commonly found on UNIX systems.
|
|
//
|
|
// Deprecated: this package moved to golang.org/x/term.
|
|
package terminal
|
|
|
|
import (
|
|
"io"
|
|
|
|
"golang.org/x/term"
|
|
)
|
|
|
|
// EscapeCodes contains escape sequences that can be written to the terminal in
|
|
// order to achieve different styles of text.
|
|
type EscapeCodes = term.EscapeCodes
|
|
|
|
// Terminal contains the state for running a VT100 terminal that is capable of
|
|
// reading lines of input.
|
|
type Terminal = term.Terminal
|
|
|
|
// NewTerminal runs a VT100 terminal on the given ReadWriter. If the ReadWriter is
|
|
// a local terminal, that terminal must first have been put into raw mode.
|
|
// prompt is a string that is written at the start of each input line (i.e.
|
|
// "> ").
|
|
func NewTerminal(c io.ReadWriter, prompt string) *Terminal {
|
|
return term.NewTerminal(c, prompt)
|
|
}
|
|
|
|
// ErrPasteIndicator may be returned from ReadLine as the error, in addition
|
|
// to valid line data. It indicates that bracketed paste mode is enabled and
|
|
// that the returned line consists only of pasted data. Programs may wish to
|
|
// interpret pasted data more literally than typed data.
|
|
var ErrPasteIndicator = term.ErrPasteIndicator
|
|
|
|
// State contains the state of a terminal.
|
|
type State = term.State
|
|
|
|
// IsTerminal returns whether the given file descriptor is a terminal.
|
|
func IsTerminal(fd int) bool {
|
|
return term.IsTerminal(fd)
|
|
}
|
|
|
|
// ReadPassword reads a line of input from a terminal without local echo. This
|
|
// is commonly used for inputting passwords and other sensitive data. The slice
|
|
// returned does not include the \n.
|
|
func ReadPassword(fd int) ([]byte, error) {
|
|
return term.ReadPassword(fd)
|
|
}
|
|
|
|
// MakeRaw puts the terminal connected to the given file descriptor into raw
|
|
// mode and returns the previous state of the terminal so that it can be
|
|
// restored.
|
|
func MakeRaw(fd int) (*State, error) {
|
|
return term.MakeRaw(fd)
|
|
}
|
|
|
|
// Restore restores the terminal connected to the given file descriptor to a
|
|
// previous state.
|
|
func Restore(fd int, oldState *State) error {
|
|
return term.Restore(fd, oldState)
|
|
}
|
|
|
|
// GetState returns the current state of a terminal which may be useful to
|
|
// restore the terminal after a signal.
|
|
func GetState(fd int) (*State, error) {
|
|
return term.GetState(fd)
|
|
}
|
|
|
|
// GetSize returns the dimensions of the given terminal.
|
|
func GetSize(fd int) (width, height int, err error) {
|
|
return term.GetSize(fd)
|
|
}
|