|
|
@@ -23,6 +23,7 @@ import (
|
|
|
"os"
|
|
|
"os/signal"
|
|
|
"path/filepath"
|
|
|
+ "regexp"
|
|
|
"strings"
|
|
|
|
|
|
"sort"
|
|
|
@@ -44,6 +45,10 @@ import (
|
|
|
"github.com/robertkrimen/otto"
|
|
|
)
|
|
|
|
|
|
+var passwordRegexp = regexp.MustCompile("personal.[nu]")
|
|
|
+
|
|
|
+const passwordRepl = ""
|
|
|
+
|
|
|
type prompter interface {
|
|
|
AppendHistory(string)
|
|
|
Prompt(p string) (string, error)
|
|
|
@@ -413,8 +418,10 @@ func (self *jsre) interactive() {
|
|
|
str += input + "\n"
|
|
|
self.setIndent()
|
|
|
if indentCount <= 0 {
|
|
|
- hist := str[:len(str)-1]
|
|
|
- self.AppendHistory(hist)
|
|
|
+ hist := hidepassword(str[:len(str)-1])
|
|
|
+ if len(hist) > 0 {
|
|
|
+ self.AppendHistory(hist)
|
|
|
+ }
|
|
|
self.parseInput(str)
|
|
|
str = ""
|
|
|
}
|
|
|
@@ -422,6 +429,14 @@ func (self *jsre) interactive() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+func hidepassword(input string) string {
|
|
|
+ if passwordRegexp.MatchString(input) {
|
|
|
+ return passwordRepl
|
|
|
+ } else {
|
|
|
+ return input
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
func (self *jsre) withHistory(op func(*os.File)) {
|
|
|
datadir := common.DefaultDataDir()
|
|
|
if self.ethereum != nil {
|