diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-06-17 22:56:09 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-06-17 22:56:09 +0800 |
commit | ae36beb38f356a08370e95559d04243140105c32 (patch) | |
tree | 06dbeaca58fe8dc82c5f12c638c7e8b1c322a913 /cmd | |
parent | e4b54f18c6db9f43a4d6cf2916df664bf30c8171 (diff) | |
parent | f06f220c7c8de5fe4a08cf7d6d9531a0a564ee12 (diff) | |
download | go-tangerine-ae36beb38f356a08370e95559d04243140105c32.tar go-tangerine-ae36beb38f356a08370e95559d04243140105c32.tar.gz go-tangerine-ae36beb38f356a08370e95559d04243140105c32.tar.bz2 go-tangerine-ae36beb38f356a08370e95559d04243140105c32.tar.lz go-tangerine-ae36beb38f356a08370e95559d04243140105c32.tar.xz go-tangerine-ae36beb38f356a08370e95559d04243140105c32.tar.zst go-tangerine-ae36beb38f356a08370e95559d04243140105c32.zip |
Merge pull request #1269 from bas-vk/console-batch
added batch mode to console
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/console/js.go | 25 | ||||
-rw-r--r-- | cmd/console/main.go | 11 |
2 files changed, 31 insertions, 5 deletions
diff --git a/cmd/console/js.go b/cmd/console/js.go index a5fdaacc2..15ea9bedd 100644 --- a/cmd/console/js.go +++ b/cmd/console/js.go @@ -30,6 +30,7 @@ import ( "sort" + "github.com/codegangsta/cli" "github.com/ethereum/go-ethereum/cmd/utils" "github.com/ethereum/go-ethereum/common/docserver" re "github.com/ethereum/go-ethereum/jsre" @@ -329,7 +330,29 @@ 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() && val.IsObject() { + obj, _ := self.re.Get("ret_result") + fmt.Printf("%v", obj) + } 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. prompt := make(chan string) inputln := make(chan string) diff --git a/cmd/console/main.go b/cmd/console/main.go index e8dd412ba..00a9ca9c4 100644 --- a/cmd/console/main.go +++ b/cmd/console/main.go @@ -40,7 +40,7 @@ const ( var ( gitCommit string // set via linker flag nodeNameVersion string - app = utils.NewApp(Version, "the ether console") + app = utils.NewApp(Version, "the geth console") ) func init() { @@ -93,8 +93,11 @@ func main() { func run(ctx *cli.Context) { jspath := ctx.GlobalString(utils.JSpathFlag.Name) ipcpath := utils.IpcSocketPath(ctx) - repl := newJSRE(jspath, ipcpath) - repl.welcome(ipcpath) - repl.interactive() + + if ctx.Args().Present() { + repl.batch(ctx.Args()) + } else { + repl.interactive(ipcpath) + } } |