aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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)
+ }
}