From 1ffabeafed9677e1216bf9b3c567844bde286409 Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Sat, 13 Dec 2025 23:40:22 +0900 Subject: [PATCH 1/3] add TASKFILE_DEFAULT_NAME --- init.go | 13 ++++++++++++- init_test.go | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/init.go b/init.go index 807d201d1c..2d0e1704eb 100644 --- a/init.go +++ b/init.go @@ -9,11 +9,22 @@ import ( "github.com/go-task/task/v3/taskfile" ) -const defaultFilename = "Taskfile.yml" +var defaultFilename = "Taskfile.yml" + +// SetDefaultFilename sets the default filename for testing purposes. +func SetDefaultFilename(name string) { + defaultFilename = name +} //go:embed taskfile/templates/default.yml var DefaultTaskfile string +func init() { + if name := os.Getenv("TASKFILE_DEFAULT_NAME"); name != "" { + defaultFilename = name + } +} + // InitTaskfile creates a new Taskfile at path. // // path can be either a file path or a directory path. diff --git a/init_test.go b/init_test.go index 41095d65e1..f53c5c06c1 100644 --- a/init_test.go +++ b/init_test.go @@ -30,6 +30,39 @@ func TestInitDir(t *testing.T) { _ = os.Remove(file) } +func TestInitDirWithCustomDefaultName(t *testing.T) { + const dir = "testdata/init" + + // Set environment variable before running the test + originalName := os.Getenv("TASKFILE_DEFAULT_NAME") + os.Setenv("TASKFILE_DEFAULT_NAME", "Taskfile.yaml") + defer os.Setenv("TASKFILE_DEFAULT_NAME", originalName) + + file := filepathext.SmartJoin(dir, "Taskfile.yaml") + defaultFile := filepathext.SmartJoin(dir, "Taskfile.yml") + + // Clean up any existing files + _ = os.Remove(file) + _ = os.Remove(defaultFile) + if _, err := os.Stat(file); err == nil { + t.Errorf("Taskfile.yaml should not exist") + } + + // Manually call init logic + task.SetDefaultFilename("Taskfile.yaml") + defer task.SetDefaultFilename("Taskfile.yml") + + if _, err := task.InitTaskfile(dir); err != nil { + t.Error(err) + } + + if _, err := os.Stat(file); err != nil { + t.Errorf("Taskfile.yaml should exist") + } + + _ = os.Remove(file) +} + func TestInitFile(t *testing.T) { t.Parallel() From c342e5939fcc8bd8da05e3ce07da6cedfd929fcd Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Sun, 14 Dec 2025 01:24:41 +0900 Subject: [PATCH 2/3] use t.Setenv --- init_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/init_test.go b/init_test.go index f53c5c06c1..a7eec9b1d2 100644 --- a/init_test.go +++ b/init_test.go @@ -31,12 +31,12 @@ func TestInitDir(t *testing.T) { } func TestInitDirWithCustomDefaultName(t *testing.T) { + t.Parallel() + const dir = "testdata/init" // Set environment variable before running the test - originalName := os.Getenv("TASKFILE_DEFAULT_NAME") - os.Setenv("TASKFILE_DEFAULT_NAME", "Taskfile.yaml") - defer os.Setenv("TASKFILE_DEFAULT_NAME", originalName) + t.Setenv("TASKFILE_DEFAULT_NAME", "Taskfile.yaml") file := filepathext.SmartJoin(dir, "Taskfile.yaml") defaultFile := filepathext.SmartJoin(dir, "Taskfile.yml") From 1c4be5bb9062de48f8562035958ad8e0798f163a Mon Sep 17 00:00:00 2001 From: Yasuhiro Matsumoto Date: Sun, 14 Dec 2025 01:28:00 +0900 Subject: [PATCH 3/3] fix test --- init_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/init_test.go b/init_test.go index a7eec9b1d2..748e85ae79 100644 --- a/init_test.go +++ b/init_test.go @@ -31,8 +31,6 @@ func TestInitDir(t *testing.T) { } func TestInitDirWithCustomDefaultName(t *testing.T) { - t.Parallel() - const dir = "testdata/init" // Set environment variable before running the test