aboutsummaryrefslogtreecommitdiffstats
path: root/exec.go
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-03-30 19:29:44 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-03-30 19:29:44 +0900
commitb13f3d5d4d62bb48a754103a1ecf91afd88e2e89 (patch)
tree92a9a4b2a26cabea8820b9ab94945014b9f8d340 /exec.go
parente5be0144ea573b0e39bdc6cddfef1a671253c42c (diff)
downloadandroid_build_kati-b13f3d5d4d62bb48a754103a1ecf91afd88e2e89.tar.gz
android_build_kati-b13f3d5d4d62bb48a754103a1ecf91afd88e2e89.tar.bz2
android_build_kati-b13f3d5d4d62bb48a754103a1ecf91afd88e2e89.zip
Handle targets in command line parameter
Diffstat (limited to 'exec.go')
-rw-r--r--exec.go19
1 files changed, 14 insertions, 5 deletions
diff --git a/exec.go b/exec.go
index 27bb27c..43920de 100644
--- a/exec.go
+++ b/exec.go
@@ -92,7 +92,7 @@ func (ex *Executor) build(output string) (int64, error) {
return outputTs, nil
}
-func (ex *Executor) exec(er *EvalResult) error {
+func (ex *Executor) exec(er *EvalResult, targets []string) error {
if len(er.rules) == 0 {
return errors.New("no targets.")
}
@@ -104,11 +104,20 @@ func (ex *Executor) exec(er *EvalResult) error {
ex.rules[rule.output] = rule
}
- _, err := ex.build(er.rules[0].output)
- return err
+ if len(targets) == 0 {
+ targets = append(targets, er.rules[0].output)
+ }
+
+ for _, target := range targets {
+ _, err := ex.build(target)
+ if err != nil {
+ return err
+ }
+ }
+ return nil
}
-func Exec(er *EvalResult) error {
+func Exec(er *EvalResult, targets []string) error {
ex := newExecutor()
- return ex.exec(er)
+ return ex.exec(er, targets)
}