mirror of
https://github.com/golang/go
synced 2024-11-26 05:07:59 -07:00
cmd/vendor, cmd/pprof: use golang.org/x/term directly
The cmd/pprof package currently uses golang.org/x/crypto/ssh/terminal which - as of CL 258003 - is merely a wrapper around golang.org/x/term. Thus, drop the dependency on golang.org/x/crypto/ssh/terminal and use golang.org/x/term directly. Change-Id: Ib15f1f110c338b9dba4a91a873171948ae6298a4 Reviewed-on: https://go-review.googlesource.com/c/go/+/304691 Trust: Tobias Klauser <tobias.klauser@gmail.com> Run-TryBot: Bryan C. Mills <bcmills@google.com> Reviewed-by: Bryan C. Mills <bcmills@google.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org> TryBot-Result: Go Bot <gobot@golang.org>
This commit is contained in:
parent
3a0061822e
commit
98a902323f
@ -5,9 +5,9 @@ go 1.17
|
||||
require (
|
||||
github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5
|
||||
golang.org/x/arch v0.0.0-20210308155006-05f8f0431f72
|
||||
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83
|
||||
golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 // indirect
|
||||
golang.org/x/mod v0.4.3-0.20210323215154-1cc8812c1740
|
||||
golang.org/x/sys v0.0.0-20210309074719-68d13333faf2 // indirect
|
||||
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d // indirect
|
||||
golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d
|
||||
golang.org/x/tools v0.1.1-0.20210312185553-8e4f4c86593a
|
||||
)
|
||||
|
@ -19,7 +19,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/google/pprof/driver"
|
||||
"golang.org/x/crypto/ssh/terminal"
|
||||
"golang.org/x/term"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@ -27,11 +27,11 @@ func init() {
|
||||
}
|
||||
|
||||
// readlineUI implements driver.UI interface using the
|
||||
// golang.org/x/crypto/ssh/terminal package.
|
||||
// golang.org/x/term package.
|
||||
// The upstream pprof command implements the same functionality
|
||||
// using the github.com/chzyer/readline package.
|
||||
type readlineUI struct {
|
||||
term *terminal.Terminal
|
||||
term *term.Terminal
|
||||
}
|
||||
|
||||
func newReadlineUI() driver.UI {
|
||||
@ -39,19 +39,19 @@ func newReadlineUI() driver.UI {
|
||||
if v := strings.ToLower(os.Getenv("TERM")); v == "" || v == "dumb" {
|
||||
return nil
|
||||
}
|
||||
// test if we can use terminal.ReadLine
|
||||
// test if we can use term.ReadLine
|
||||
// that assumes operation in the raw mode.
|
||||
oldState, err := terminal.MakeRaw(0)
|
||||
oldState, err := term.MakeRaw(0)
|
||||
if err != nil {
|
||||
return nil
|
||||
}
|
||||
terminal.Restore(0, oldState)
|
||||
term.Restore(0, oldState)
|
||||
|
||||
rw := struct {
|
||||
io.Reader
|
||||
io.Writer
|
||||
}{os.Stdin, os.Stderr}
|
||||
return &readlineUI{term: terminal.NewTerminal(rw, "")}
|
||||
return &readlineUI{term: term.NewTerminal(rw, "")}
|
||||
}
|
||||
|
||||
// Read returns a line of text (a command) read from the user.
|
||||
@ -61,8 +61,8 @@ func (r *readlineUI) ReadLine(prompt string) (string, error) {
|
||||
|
||||
// skip error checking because we tested it
|
||||
// when creating this readlineUI initially.
|
||||
oldState, _ := terminal.MakeRaw(0)
|
||||
defer terminal.Restore(0, oldState)
|
||||
oldState, _ := term.MakeRaw(0)
|
||||
defer term.Restore(0, oldState)
|
||||
|
||||
s, err := r.term.ReadLine()
|
||||
return s, err
|
||||
@ -106,7 +106,7 @@ func colorize(msg string) string {
|
||||
// interactive terminal (as opposed to being redirected to a file).
|
||||
func (r *readlineUI) IsTerminal() bool {
|
||||
const stdout = 1
|
||||
return terminal.IsTerminal(stdout)
|
||||
return term.IsTerminal(stdout)
|
||||
}
|
||||
|
||||
// WantBrowser indicates whether browser should be opened with the -http option.
|
||||
|
76
src/cmd/vendor/golang.org/x/crypto/ssh/terminal/terminal.go
generated
vendored
76
src/cmd/vendor/golang.org/x/crypto/ssh/terminal/terminal.go
generated
vendored
@ -1,76 +0,0 @@
|
||||
// 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)
|
||||
}
|
1
src/cmd/vendor/modules.txt
vendored
1
src/cmd/vendor/modules.txt
vendored
@ -27,7 +27,6 @@ golang.org/x/arch/x86/x86asm
|
||||
## explicit
|
||||
golang.org/x/crypto/ed25519
|
||||
golang.org/x/crypto/ed25519/internal/edwards25519
|
||||
golang.org/x/crypto/ssh/terminal
|
||||
# golang.org/x/mod v0.4.3-0.20210323215154-1cc8812c1740
|
||||
## explicit
|
||||
golang.org/x/mod/internal/lazyregexp
|
||||
|
Loading…
Reference in New Issue
Block a user