aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-04-11 21:52:38 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-04-11 21:53:32 +0900
commit973c69fc434b5c97dc2c4a041a5b9de1c2cb5761 (patch)
treead369f1891632554e56b717a4fbb1884dfe9b18f
parent58370c1003b5d8bfe22e6f4fa34858a41722a50a (diff)
downloadandroid_build_kati-973c69fc434b5c97dc2c4a041a5b9de1c2cb5761.tar.gz
android_build_kati-973c69fc434b5c97dc2c4a041a5b9de1c2cb5761.tar.bz2
android_build_kati-973c69fc434b5c97dc2c4a041a5b9de1c2cb5761.zip
Skip empty command
-rw-r--r--exec.go16
-rw-r--r--testcase/empty_var_cmd.mk5
2 files changed, 15 insertions, 6 deletions
diff --git a/exec.go b/exec.go
index 2c6056e..9d4898b 100644
--- a/exec.go
+++ b/exec.go
@@ -63,8 +63,8 @@ type runner struct {
shell string
}
-func evalCmd(ev *Evaluator, r runner, s string, shell string) []runner {
- r = newRunner(r, s, shell)
+func evalCmd(ev *Evaluator, r runner, s string) []runner {
+ r = newRunner(r, s)
if strings.IndexByte(r.cmd, '$') < 0 {
// fast path
return []runner{r}
@@ -72,13 +72,12 @@ func evalCmd(ev *Evaluator, r runner, s string, shell string) []runner {
cmds := ev.evalExpr(r.cmd)
var runners []runner
for _, cmd := range strings.Split(cmds, "\n") {
- runners = append(runners, newRunner(r, cmd, shell))
+ runners = append(runners, newRunner(r, cmd))
}
return runners
}
-func newRunner(r runner, s string, shell string) runner {
- r.shell = shell
+func newRunner(r runner, s string) runner {
for {
s = trimLeftSpace(s)
if s == "" {
@@ -321,9 +320,14 @@ func (ex *Executor) build(vars *VarTab, output string, neededBy string) (int64,
output: output,
echo: true,
dryRun: dryRunFlag,
+ shell: ex.shell,
}
for _, cmd := range rule.cmds {
- runners = append(runners, evalCmd(ev, r, cmd, ex.shell)...)
+ for _, r := range evalCmd(ev, r, cmd) {
+ if len(r.cmd) != 0 {
+ runners = append(runners, r)
+ }
+ }
}
for _, r := range runners {
err := r.run()
diff --git a/testcase/empty_var_cmd.mk b/testcase/empty_var_cmd.mk
new file mode 100644
index 0000000..10560ea
--- /dev/null
+++ b/testcase/empty_var_cmd.mk
@@ -0,0 +1,5 @@
+empty:=
+
+test:
+ $(empty)
+ echo PASS