jsre: leave out lines from history containing methods of the personal module

This commit is contained in:
zelig 2015-07-31 11:51:18 +02:00
parent e7f4232b10
commit 6628eeb6ca
1 changed files with 17 additions and 2 deletions

View File

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