aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-06-17 22:56:09 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-06-17 22:56:09 +0800
commitae36beb38f356a08370e95559d04243140105c32 (patch)
tree06dbeaca58fe8dc82c5f12c638c7e8b1c322a913 /cmd
parente4b54f18c6db9f43a4d6cf2916df664bf30c8171 (diff)
parentf06f220c7c8de5fe4a08cf7d6d9531a0a564ee12 (diff)
downloadgo-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.go25
-rw-r--r--cmd/console/main.go11
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)
+ }
}