diff --git a/cmd/secrets.go b/cmd/secrets.go index 112861f5..20c5f719 100644 --- a/cmd/secrets.go +++ b/cmd/secrets.go @@ -2,11 +2,11 @@ package cmd import ( "fmt" - "log" "os" "strings" - "github.com/howeyc/gopass" + log "github.com/sirupsen/logrus" + "golang.org/x/term" ) type secrets map[string]string @@ -17,7 +17,7 @@ func newSecrets(secretList []string) secrets { secretPairParts := strings.SplitN(secretPair, "=", 2) secretPairParts[0] = strings.ToUpper(secretPairParts[0]) if strings.ToUpper(s[secretPairParts[0]]) == secretPairParts[0] { - log.Fatalf("Secret %s is already defined (secrets are case insensitive)", secretPairParts[0]) + log.Errorf("Secret %s is already defined (secrets are case insensitive)", secretPairParts[0]) } if len(secretPairParts) == 2 { s[secretPairParts[0]] = secretPairParts[1] @@ -25,9 +25,10 @@ func newSecrets(secretList []string) secrets { s[secretPairParts[0]] = env } else { fmt.Printf("Provide value for '%s': ", secretPairParts[0]) - val, err := gopass.GetPasswdMasked() + val, err := term.ReadPassword(int(os.Stdin.Fd())) if err != nil { - log.Fatal("abort") + log.Errorf("failed to read input: %v", err) + os.Exit(1) } s[secretPairParts[0]] = string(val) }