forked from cerc-io/plugeth
console/history respect datadir
This commit is contained in:
parent
69d86442a5
commit
8636f0e1c3
@ -145,7 +145,7 @@ func apiWordCompleter(line string, pos int) (head string, completions []string,
|
|||||||
return begin, completionWords, end
|
return begin, completionWords, end
|
||||||
}
|
}
|
||||||
|
|
||||||
func newLightweightJSRE(libPath string, client comms.EthereumClient, interactive bool) *jsre {
|
func newLightweightJSRE(libPath string, client comms.EthereumClient, datadir string, interactive bool) *jsre {
|
||||||
js := &jsre{ps1: "> "}
|
js := &jsre{ps1: "> "}
|
||||||
js.wait = make(chan *big.Int)
|
js.wait = make(chan *big.Int)
|
||||||
js.client = client
|
js.client = client
|
||||||
@ -161,14 +161,14 @@ func newLightweightJSRE(libPath string, client comms.EthereumClient, interactive
|
|||||||
js.prompter = dumbterm{bufio.NewReader(os.Stdin)}
|
js.prompter = dumbterm{bufio.NewReader(os.Stdin)}
|
||||||
} else {
|
} else {
|
||||||
lr := liner.NewLiner()
|
lr := liner.NewLiner()
|
||||||
js.withHistory(func(hist *os.File) { lr.ReadHistory(hist) })
|
js.withHistory(datadir, func(hist *os.File) { lr.ReadHistory(hist) })
|
||||||
lr.SetCtrlCAborts(true)
|
lr.SetCtrlCAborts(true)
|
||||||
js.loadAutoCompletion()
|
js.loadAutoCompletion()
|
||||||
lr.SetWordCompleter(apiWordCompleter)
|
lr.SetWordCompleter(apiWordCompleter)
|
||||||
lr.SetTabCompletionStyle(liner.TabPrints)
|
lr.SetTabCompletionStyle(liner.TabPrints)
|
||||||
js.prompter = lr
|
js.prompter = lr
|
||||||
js.atexit = func() {
|
js.atexit = func() {
|
||||||
js.withHistory(func(hist *os.File) { hist.Truncate(0); lr.WriteHistory(hist) })
|
js.withHistory(datadir, func(hist *os.File) { hist.Truncate(0); lr.WriteHistory(hist) })
|
||||||
lr.Close()
|
lr.Close()
|
||||||
close(js.wait)
|
close(js.wait)
|
||||||
}
|
}
|
||||||
@ -203,14 +203,14 @@ func newJSRE(ethereum *eth.Ethereum, libPath, corsDomain string, client comms.Et
|
|||||||
js.prompter = dumbterm{bufio.NewReader(os.Stdin)}
|
js.prompter = dumbterm{bufio.NewReader(os.Stdin)}
|
||||||
} else {
|
} else {
|
||||||
lr := liner.NewLiner()
|
lr := liner.NewLiner()
|
||||||
js.withHistory(func(hist *os.File) { lr.ReadHistory(hist) })
|
js.withHistory(ethereum.DataDir, func(hist *os.File) { lr.ReadHistory(hist) })
|
||||||
lr.SetCtrlCAborts(true)
|
lr.SetCtrlCAborts(true)
|
||||||
js.loadAutoCompletion()
|
js.loadAutoCompletion()
|
||||||
lr.SetWordCompleter(apiWordCompleter)
|
lr.SetWordCompleter(apiWordCompleter)
|
||||||
lr.SetTabCompletionStyle(liner.TabPrints)
|
lr.SetTabCompletionStyle(liner.TabPrints)
|
||||||
js.prompter = lr
|
js.prompter = lr
|
||||||
js.atexit = func() {
|
js.atexit = func() {
|
||||||
js.withHistory(func(hist *os.File) { hist.Truncate(0); lr.WriteHistory(hist) })
|
js.withHistory(ethereum.DataDir, func(hist *os.File) { hist.Truncate(0); lr.WriteHistory(hist) })
|
||||||
lr.Close()
|
lr.Close()
|
||||||
close(js.wait)
|
close(js.wait)
|
||||||
}
|
}
|
||||||
@ -433,12 +433,7 @@ func hidepassword(input string) string {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *jsre) withHistory(op func(*os.File)) {
|
func (self *jsre) withHistory(datadir string, op func(*os.File)) {
|
||||||
datadir := common.DefaultDataDir()
|
|
||||||
if self.ethereum != nil {
|
|
||||||
datadir = self.ethereum.DataDir
|
|
||||||
}
|
|
||||||
|
|
||||||
hist, err := os.OpenFile(filepath.Join(datadir, "history"), os.O_RDWR|os.O_CREATE, os.ModePerm)
|
hist, err := os.OpenFile(filepath.Join(datadir, "history"), os.O_RDWR|os.O_CREATE, os.ModePerm)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("unable to open history file: %v\n", err)
|
fmt.Printf("unable to open history file: %v\n", err)
|
||||||
|
@ -429,6 +429,7 @@ func attach(ctx *cli.Context) {
|
|||||||
repl := newLightweightJSRE(
|
repl := newLightweightJSRE(
|
||||||
ctx.GlobalString(utils.JSpathFlag.Name),
|
ctx.GlobalString(utils.JSpathFlag.Name),
|
||||||
client,
|
client,
|
||||||
|
ctx.GlobalString(utils.DataDirFlag.Name),
|
||||||
true,
|
true,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user