aboutsummaryrefslogtreecommitdiff
path: root/exec.go
diff options
context:
space:
mode:
authorFumitoshi Ukai <fumitoshi.ukai@gmail.com>2015-04-18 00:11:05 +0900
committerFumitoshi Ukai <fumitoshi.ukai@gmail.com>2015-04-18 00:12:12 +0900
commit00178d1c2dd6e8d426cc4c7425a5d43273514d2b (patch)
treefa5f20010036b8effde33b4c64e0d807a627464d /exec.go
parent2ffad63581a5ab18bdb0c00b3bc84895d3d58713 (diff)
downloadkati-00178d1c2dd6e8d426cc4c7425a5d43273514d2b.tar.gz
minor performance tuning
before: % ./run_integration_test.rb android Running make for android... 5.76 secs Running kati for android... 17.29 secs android: OK PASS! after: % ./run_integration_test.rb android Running make for android... 5.83 secs Running kati for android... 14.55 secs android: OK PASS!
Diffstat (limited to 'exec.go')
-rw-r--r--exec.go7
1 files changed, 6 insertions, 1 deletions
diff --git a/exec.go b/exec.go
index 6048224..07378f4 100644
--- a/exec.go
+++ b/exec.go
@@ -190,7 +190,12 @@ func evalCmd(ev *Evaluator, r runner, s string) []runner {
// fast path
return []runner{r}
}
- cmds := ev.evalExpr(r.cmd)
+ // TODO(ukai): parse once more earlier?
+ expr, _, err := parseExpr([]byte(r.cmd), nil)
+ if err != nil {
+ panic(fmt.Errorf("parse cmd %q: %v", r.cmd, err))
+ }
+ cmds := string(ev.Value(expr))
var runners []runner
for _, cmd := range strings.Split(cmds, "\n") {
if len(runners) > 0 && strings.HasSuffix(runners[0].cmd, "\\") {