added batch mode to console

This commit is contained in:
Bas van Kervel 2015-06-13 19:02:46 +02:00
parent 6f5c6150b7
commit 2a0528303f
2 changed files with 30 additions and 5 deletions

View File

@ -30,6 +30,7 @@ import (
"sort" "sort"
"github.com/codegangsta/cli"
"github.com/ethereum/go-ethereum/cmd/utils" "github.com/ethereum/go-ethereum/cmd/utils"
"github.com/ethereum/go-ethereum/common/docserver" "github.com/ethereum/go-ethereum/common/docserver"
re "github.com/ethereum/go-ethereum/jsre" re "github.com/ethereum/go-ethereum/jsre"
@ -329,7 +330,28 @@ func (self *jsre) welcome(ipcpath string) {
} }
} }
func (self *jsre) interactive() { func (self *jsre) batch(args cli.Args) {
statement := strings.Join(args, " ")
val, err := self.re.Run(statement)
if err != nil {
fmt.Printf("error: %v", err)
} else if val.IsDefined() {
fmt.Printf("%v", val)
}
if self.atexit != nil {
self.atexit()
}
self.re.Stop(false)
}
func (self *jsre) interactive(ipcpath string) {
self.welcome(ipcpath)
// Read input lines. // Read input lines.
prompt := make(chan string) prompt := make(chan string)
inputln := make(chan string) inputln := make(chan string)

View File

@ -40,7 +40,7 @@ const (
var ( var (
gitCommit string // set via linker flag gitCommit string // set via linker flag
nodeNameVersion string nodeNameVersion string
app = utils.NewApp(Version, "the ether console") app = utils.NewApp(Version, "the geth console")
) )
func init() { func init() {
@ -93,8 +93,11 @@ func main() {
func run(ctx *cli.Context) { func run(ctx *cli.Context) {
jspath := ctx.GlobalString(utils.JSpathFlag.Name) jspath := ctx.GlobalString(utils.JSpathFlag.Name)
ipcpath := utils.IpcSocketPath(ctx) ipcpath := utils.IpcSocketPath(ctx)
repl := newJSRE(jspath, ipcpath) repl := newJSRE(jspath, ipcpath)
repl.welcome(ipcpath)
repl.interactive() if ctx.Args().Present() {
repl.batch(ctx.Args())
} else {
repl.interactive(ipcpath)
}
} }