terminal

package
v12.110.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 23, 2024 License: Apache-2.0 Imports: 10 Imported by: 21

Documentation

Overview

Package terminal provides methods for working with user input

Index

Examples

Constants

This section is empty.

Variables

View Source
var (
	// MaskSymbolColorTag is fmtc color tag used for MaskSymbol output
	MaskSymbolColorTag = ""

	// TitleColorTag is fmtc color tag used for input titles
	TitleColorTag = "{s}"

	// ErrorColorTag is fmtc color tag used for error messages
	ErrorColorTag = "{r}"

	// WarnColorTag is fmtc color tag used for warning messages
	WarnColorTag = "{y}"

	// InfoColorTag is fmtc color tag used for info messages
	InfoColorTag = "{c-}"
)
View Source
var (
	// ErrorPrefix is prefix for error messages
	ErrorPrefix = ""

	// WarnPrefix is prefix for warning messages
	WarnPrefix = ""

	// InfoPrefix is prefix for info messages
	InfoPrefix = ""
)
View Source
var AlwaysYes = false

AlwaysYes is a flag, if set ReadAnswer will always return true (useful for working with option for forced actions)

View Source
var ErrKillSignal = linenoise.ErrKillSignal

ErrKillSignal is error type when user cancel input

View Source
var HideLength = false

HideLength is flag for hiding password length

View Source
var HidePassword = false

HidePassword is flag for hiding password while typing Because of using the low-level linenoise method for this feature, we can not use a custom masking symbol, so it always will be an asterisk (*).

View Source
var MaskSymbol = "*"

MaskSymbol is symbol used for masking passwords

View Source
var Prompt = "> "

Prompt is prompt string

Functions

func AddHistory

func AddHistory(data string)

AddHistory adds line to input history

func Error added in v12.70.0

func Error(message any, args ...any)

Error prints error message

Example
// Add custom error message prefix
ErrorPrefix = "▲ "

// Print red text to stderr
Error("Error while sending data to %s", "https://example.com")

// Print message from error struct
err := errors.New("My error")
Error(err)
Output:

func Info added in v12.70.0

func Info(message any, args ...any)

Info prints info message

Example
// Add custom info message prefix
InfoPrefix = "❕ "

// Print cyan text to stdout
Warn("User %q will be created automatically", "bob")
Output:

func PrintActionMessage

func PrintActionMessage(message string)

PrintActionMessage prints message about action currently in progress

Example
statusOk := true

PrintActionMessage("Starting service my-service")

switch statusOk {
case true:
	PrintActionStatus(0) // Print OK
case false:
	PrintActionStatus(1) // Print ERROR
}
Output:

func PrintActionStatus

func PrintActionStatus(status int)

PrintActionStatus prints message with action execution status

Example
statusOk := true

PrintActionMessage("Starting service my-service")

switch statusOk {
case true:
	PrintActionStatus(0) // Print OK
case false:
	PrintActionStatus(1) // Print ERROR
}
Output:

func PrintErrorMessage deprecated

func PrintErrorMessage(message string, args ...any)

PrintErrorMessage prints error message

Deprecated: Use method Error instead

func PrintWarnMessage deprecated

func PrintWarnMessage(message string, args ...any)

PrintWarnMessage prints warning message

Deprecated: Use method Warn instead

func Read added in v12.64.0

func Read(title string, nonEmpty bool) (string, error)

Read reads user's input

Example
// User must enter name
input, err := ReadUI("Please enter user name", true)

if err != nil {
	fmt.Printf("Error: %v", err)
}

fmt.Printf("User name: %s\v", input)

// You can read user input without providing any title
fmt.Println("Please enter user name")
input, err = ReadUI("", true)

if err != nil {
	fmt.Printf("Error: %v", err)
}

fmt.Printf("User name: %s\v", input)
Output:

func ReadAnswer

func ReadAnswer(title string, defaultAnswers ...string) (bool, error)

ReadAnswer reads user's answer for yes/no question

Example
// If the user doesn't enter any value, we will use the default
// value (Y in this case)
ok, err := ReadAnswer("Remove this file?", "Y")

if !ok || err != nil {
	return
}

if ok {
	fmt.Println("File removed")
}
Output:

func ReadPassword

func ReadPassword(title string, nonEmpty bool) (string, error)

ReadPassword reads password or some private input which will be hidden after pressing Enter

Example
Prompt = "› "
MaskSymbol = "•"
MaskSymbolColorTag = "{s}"

// User must enter the password
password, err := ReadPassword("Please enter password", true)

if err != nil {
	fmt.Printf("Error: %v", err)
}

fmt.Printf("User password: %s\v", password)
Output:

func ReadPasswordSecure added in v12.43.0

func ReadPasswordSecure(title string, nonEmpty bool) (*secstr.String, error)

ReadPasswordSecure reads password or some private input which will be hidden after pressing Enter

Example
Prompt = "› "
MaskSymbol = "•"
MaskSymbolColorTag = "{s}"

// User must enter the password
password, err := ReadPasswordSecure("Please enter password", true)

if err != nil {
	fmt.Printf("Error: %v", err)
}

fmt.Printf("User password: %s\v", string(password.Data))

password.Destroy()
Output:

func ReadUI deprecated

func ReadUI(title string, nonEmpty bool) (string, error)

ReadUI reads user's input

Deprecated: Use method Read instead

func SetCompletionHandler

func SetCompletionHandler(h func(input string) []string)

SetCompletionHandler adds function for autocompletion

func SetHintHandler

func SetHintHandler(h func(input string) string)

SetHintHandler adds function for input hints

func Warn added in v12.70.0

func Warn(message any, args ...any)

Warn prints warning message

Example
// Add custom warning message prefix
WarnPrefix = "△ "

// Print yellow text to stderr
Warn("Warning file %s is not found", "/home/john/test.txt")

// Print message from error struct
err := errors.New("My warning")
Warn(err)
Output:

Types

This section is empty.

Directories

Path Synopsis
Package tty provides methods for working with TTY
Package tty provides methods for working with TTY
Package window provides methods for working terminal window
Package window provides methods for working terminal window

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL