diff --git a/task_test.go b/task_test.go index 8ccc92d9..97558950 100644 --- a/task_test.go +++ b/task_test.go @@ -756,14 +756,14 @@ func TestIncludesCallingRoot(t *testing.T) { } func TestIncludesOptional(t *testing.T) { - tt := fileContentTest{ - Dir: "testdata/includes_optional", - Target: "default", - TrimSpace: true, - Files: map[string]string{ - "called_dep.txt": "called_dep", - }} - tt.Run(t) + tt := fileContentTest{ + Dir: "testdata/includes_optional", + Target: "default", + TrimSpace: true, + Files: map[string]string{ + "called_dep.txt": "called_dep", + }} + tt.Run(t) } func TestIncludesOptionalImplicitFalse(t *testing.T) { @@ -1033,6 +1033,7 @@ func TestIgnoreNilElements(t *testing.T) { }{ {"nil cmd", "testdata/ignore_nil_elements/cmds"}, {"nil dep", "testdata/ignore_nil_elements/deps"}, + {"nil include", "testdata/ignore_nil_elements/includes"}, {"nil precondition", "testdata/ignore_nil_elements/preconditions"}, } diff --git a/taskfile/merge.go b/taskfile/merge.go index 93466008..45d40571 100644 --- a/taskfile/merge.go +++ b/taskfile/merge.go @@ -49,7 +49,7 @@ func Merge(t1, t2 *Taskfile, namespaces ...string) error { dep.Task = taskNameWithNamespace(dep.Task, namespaces...) } for _, cmd := range v.Cmds { - if cmd.Task != "" { + if cmd != nil && cmd.Task != "" { cmd.Task = taskNameWithNamespace(cmd.Task, namespaces...) } } diff --git a/testdata/ignore_nil_elements/includes/Taskfile.yml b/testdata/ignore_nil_elements/includes/Taskfile.yml new file mode 100644 index 00000000..a428fa34 --- /dev/null +++ b/testdata/ignore_nil_elements/includes/Taskfile.yml @@ -0,0 +1,9 @@ +version: '3' + +includes: + inc: inc.yml + +tasks: + default: + cmds: + - task: inc:default diff --git a/testdata/ignore_nil_elements/includes/inc.yml b/testdata/ignore_nil_elements/includes/inc.yml new file mode 100644 index 00000000..537bad1d --- /dev/null +++ b/testdata/ignore_nil_elements/includes/inc.yml @@ -0,0 +1,7 @@ +version: '3' + +tasks: + default: + cmds: + - + - echo "string-slice-1"