From 7a8142ed9275283704998191b4aeec70087ac3f4 Mon Sep 17 00:00:00 2001 From: Evgeny Abramovich Date: Wed, 29 Jan 2020 10:03:06 +0300 Subject: [PATCH] Added included taskfile directory resolving --- internal/taskfile/merge.go | 2 +- internal/taskfile/read/taskfile.go | 9 +++++++-- internal/taskfile/taskfile.go | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/internal/taskfile/merge.go b/internal/taskfile/merge.go index b9f415ba..6a545df3 100644 --- a/internal/taskfile/merge.go +++ b/internal/taskfile/merge.go @@ -22,7 +22,7 @@ func Merge(t1, t2 *Taskfile, namespaces ...string) error { } if t1.Includes == nil { - t1.Includes = make(map[string]string) + t1.Includes = make(IncludedTaskFiles) } for k, v := range t2.Includes { t1.Includes[k] = v diff --git a/internal/taskfile/read/taskfile.go b/internal/taskfile/read/taskfile.go index a08360d3..1a310eda 100644 --- a/internal/taskfile/read/taskfile.go +++ b/internal/taskfile/read/taskfile.go @@ -28,8 +28,8 @@ func Taskfile(dir string, entrypoint string) (*taskfile.Taskfile, error) { return nil, err } - for namespace, path := range t.Includes { - path = filepath.Join(dir, path) + for namespace, includedTask := range t.Includes { + path = filepath.Join(dir, includedTask.Taskfile) info, err := os.Stat(path) if err != nil { return nil, err @@ -44,6 +44,11 @@ func Taskfile(dir string, entrypoint string) (*taskfile.Taskfile, error) { if len(includedTaskfile.Includes) > 0 { return nil, ErrIncludedTaskfilesCantHaveIncludes } + + for _, task := range includedTaskfile.Tasks { + task.Dir = filepath.Join(includedTask.Dir, task.Dir) + } + if err = taskfile.Merge(t, includedTaskfile, namespace); err != nil { return nil, err } diff --git a/internal/taskfile/taskfile.go b/internal/taskfile/taskfile.go index 52b707c8..c0fc5a17 100644 --- a/internal/taskfile/taskfile.go +++ b/internal/taskfile/taskfile.go @@ -6,7 +6,7 @@ type Taskfile struct { Expansions int Output string Method string - Includes map[string]string + Includes IncludedTaskFiles Vars Vars Env Vars Tasks Tasks @@ -20,7 +20,7 @@ func (tf *Taskfile) UnmarshalYAML(unmarshal func(interface{}) error) error { Expansions int Output string Method string - Includes map[string]string + Includes IncludedTaskFiles Vars Vars Env Vars Tasks Tasks