diff options
Diffstat (limited to 'cmd/geth/js.go')
-rw-r--r-- | cmd/geth/js.go | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/cmd/geth/js.go b/cmd/geth/js.go index a4b14d7b1..b01fd7e36 100644 --- a/cmd/geth/js.go +++ b/cmd/geth/js.go @@ -27,6 +27,7 @@ import ( "sort" "strings" + "github.com/codegangsta/cli" "github.com/ethereum/go-ethereum/cmd/utils" "github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common/registrar" @@ -331,6 +332,23 @@ func (self *jsre) UnlockAccount(addr []byte) bool { } } +// preloadJSFiles loads JS files that the user has specified with ctx.PreLoadJSFlag into +// the JSRE. If not all files could be loaded it will return an error describing the error. +func (self *jsre) preloadJSFiles(ctx *cli.Context) error { + if ctx.GlobalString(utils.PreLoadJSFlag.Name) != "" { + assetPath := ctx.GlobalString(utils.JSpathFlag.Name) + jsFiles := strings.Split(ctx.GlobalString(utils.PreLoadJSFlag.Name), ",") + for _, file := range jsFiles { + filename := common.AbsolutePath(assetPath, strings.TrimSpace(file)) + if err := self.re.Exec(filename); err != nil { + return fmt.Errorf("%s: %v", file, err) + } + } + } + return nil +} + +// exec executes the JS file with the given filename and stops the JSRE func (self *jsre) exec(filename string) error { if err := self.re.Exec(filename); err != nil { self.re.Stop(false) |