1
0
mirror of https://github.com/rclone/rclone.git synced 2026-02-28 10:23:19 +00:00
Files
rclone/lib/terminal/terminal_normal.go
Carl Edquist 14534c573a terminal: WriteTerminalTitle to terminal not stdout
The terminal title output should go to the same place as the rest of the
terminal output.  It's important _not_ to send it to stdout, where it
would get included with the main program output when redirected to a
file - for instance with the rclone cat command.
2022-10-06 02:45:42 -05:00

39 lines
873 B
Go

//go:build !js
// +build !js
package terminal
import (
"fmt"
"os"
"golang.org/x/term"
)
// GetSize reads the dimensions of the current terminal or returns a
// sensible default
func GetSize() (w, h int) {
w, h, err := term.GetSize(int(os.Stdout.Fd()))
if err != nil {
w, h = 80, 25
}
return w, h
}
// IsTerminal returns whether the fd passed in is a terminal or not
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)
}
// WriteTerminalTitle writes a string to the terminal title
func WriteTerminalTitle(title string) {
fmt.Fprintf(TerminalOutput, ChangeTitle + title + BEL)
}