mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2025-01-03 00:27:38 +00:00
Move "Enter a password" cmd instructions to shared/cmd (#5724)
* Move EnterPassword CMD to cmd package * Add comment * Add tracking issue and remove log.Fatal * Add better error handling * gaz * Comment fix * Update shared/cmd/helpers.go Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com> Co-authored-by: terence tsao <terence@prysmaticlabs.com>
This commit is contained in:
parent
3a677ef342
commit
2b7865cb3b
@ -13,9 +13,11 @@ go_library(
|
|||||||
importpath = "github.com/prysmaticlabs/prysm/shared/cmd",
|
importpath = "github.com/prysmaticlabs/prysm/shared/cmd",
|
||||||
visibility = ["//visibility:public"],
|
visibility = ["//visibility:public"],
|
||||||
deps = [
|
deps = [
|
||||||
|
"@com_github_pkg_errors//:go_default_library",
|
||||||
"@com_github_sirupsen_logrus//:go_default_library",
|
"@com_github_sirupsen_logrus//:go_default_library",
|
||||||
"@in_gopkg_urfave_cli_v2//:go_default_library",
|
"@in_gopkg_urfave_cli_v2//:go_default_library",
|
||||||
"@in_gopkg_urfave_cli_v2//altsrc:go_default_library",
|
"@in_gopkg_urfave_cli_v2//altsrc:go_default_library",
|
||||||
|
"@org_golang_x_crypto//ssh/terminal:go_default_library",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -3,10 +3,12 @@ package cmd
|
|||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/pkg/errors"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
|
"golang.org/x/crypto/ssh/terminal"
|
||||||
)
|
)
|
||||||
|
|
||||||
var log = logrus.WithField("prefix", "node")
|
var log = logrus.WithField("prefix", "node")
|
||||||
@ -42,3 +44,18 @@ func ConfirmAction(actionText string, deniedText string) (bool, error) {
|
|||||||
|
|
||||||
return confirmed, nil
|
return confirmed, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// EnterPassword queries the user for their password through the terminal, in order to make sure it is
|
||||||
|
// not passed in a visible way to the terminal.
|
||||||
|
// TODO(#5749): This function is untested and should be tested.
|
||||||
|
func EnterPassword() (string, error) {
|
||||||
|
var passphrase string
|
||||||
|
log.Info("Enter a password:")
|
||||||
|
bytePassword, err := terminal.ReadPassword(int(os.Stdin.Fd()))
|
||||||
|
if err != nil {
|
||||||
|
return passphrase, errors.Wrap(err, "could not read account password")
|
||||||
|
}
|
||||||
|
text := string(bytePassword)
|
||||||
|
passphrase = strings.Replace(text, "\n", "", -1)
|
||||||
|
return passphrase, nil
|
||||||
|
}
|
||||||
|
@ -11,11 +11,11 @@ go_library(
|
|||||||
],
|
],
|
||||||
deps = [
|
deps = [
|
||||||
"//contracts/deposit-contract:go_default_library",
|
"//contracts/deposit-contract:go_default_library",
|
||||||
|
"//shared/cmd:go_default_library",
|
||||||
"//shared/keystore:go_default_library",
|
"//shared/keystore:go_default_library",
|
||||||
"//shared/params:go_default_library",
|
"//shared/params:go_default_library",
|
||||||
"@com_github_pkg_errors//:go_default_library",
|
"@com_github_pkg_errors//:go_default_library",
|
||||||
"@com_github_sirupsen_logrus//:go_default_library",
|
"@com_github_sirupsen_logrus//:go_default_library",
|
||||||
"@org_golang_x_crypto//ssh/terminal:go_default_library",
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -14,10 +14,10 @@ import (
|
|||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
contract "github.com/prysmaticlabs/prysm/contracts/deposit-contract"
|
contract "github.com/prysmaticlabs/prysm/contracts/deposit-contract"
|
||||||
|
"github.com/prysmaticlabs/prysm/shared/cmd"
|
||||||
"github.com/prysmaticlabs/prysm/shared/keystore"
|
"github.com/prysmaticlabs/prysm/shared/keystore"
|
||||||
"github.com/prysmaticlabs/prysm/shared/params"
|
"github.com/prysmaticlabs/prysm/shared/params"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
"golang.org/x/crypto/ssh/terminal"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var log = logrus.WithField("prefix", "accounts")
|
var log = logrus.WithField("prefix", "accounts")
|
||||||
@ -138,16 +138,12 @@ func Exists(keystorePath string) (bool, error) {
|
|||||||
// CreateValidatorAccount creates a validator account from the given cli context.
|
// CreateValidatorAccount creates a validator account from the given cli context.
|
||||||
func CreateValidatorAccount(path string, passphrase string) (string, string, error) {
|
func CreateValidatorAccount(path string, passphrase string) (string, string, error) {
|
||||||
if passphrase == "" {
|
if passphrase == "" {
|
||||||
log.Info("Create a new validator account for eth2")
|
log.Info("Creating a new validator account for eth2")
|
||||||
log.Info("Enter a password:")
|
enteredPassphrase, err := cmd.EnterPassword()
|
||||||
bytePassword, err := terminal.ReadPassword(int(os.Stdin.Fd()))
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Could not read account password: %v", err)
|
return path, enteredPassphrase, err
|
||||||
return path, passphrase, err
|
|
||||||
}
|
}
|
||||||
text := string(bytePassword)
|
passphrase = enteredPassphrase
|
||||||
passphrase = strings.Replace(text, "\n", "", -1)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if path == "" {
|
if path == "" {
|
||||||
@ -156,7 +152,6 @@ func CreateValidatorAccount(path string, passphrase string) (string, string, err
|
|||||||
reader := bufio.NewReader(os.Stdin)
|
reader := bufio.NewReader(os.Stdin)
|
||||||
text, err := reader.ReadString('\n')
|
text, err := reader.ReadString('\n')
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
|
||||||
return path, passphrase, err
|
return path, passphrase, err
|
||||||
}
|
}
|
||||||
if text = strings.Replace(text, "\n", "", -1); text != "" {
|
if text = strings.Replace(text, "\n", "", -1); text != "" {
|
||||||
|
Loading…
Reference in New Issue
Block a user