mirror of
https://github.com/go-task/task.git
synced 2025-01-10 04:18:53 +02:00
feat: add TASK_DIR special variable (#1961)
Co-authored-by: Pete Davison <pd93.uk@outlook.com>
This commit is contained in:
parent
1bda388925
commit
9d8c4ba7e6
@ -4,7 +4,6 @@ import (
|
||||
"bytes"
|
||||
"context"
|
||||
"fmt"
|
||||
"maps"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@ -192,10 +191,14 @@ func (c *Compiler) getSpecialVars(t *ast.Task, call *ast.Call) (map[string]strin
|
||||
"TASK_VERSION": version.GetVersion(),
|
||||
}
|
||||
if t != nil {
|
||||
maps.Copy(allVars, map[string]string{"TASK": t.Task, "TASKFILE": t.Location.Taskfile, "TASKFILE_DIR": filepath.Dir(t.Location.Taskfile)})
|
||||
allVars["TASK"] = t.Task
|
||||
allVars["TASK_DIR"] = filepathext.SmartJoin(c.Dir, t.Dir)
|
||||
allVars["TASKFILE"] = t.Location.Taskfile
|
||||
allVars["TASKFILE_DIR"] = filepath.Dir(t.Location.Taskfile)
|
||||
}
|
||||
if call != nil {
|
||||
maps.Copy(allVars, map[string]string{"ALIAS": call.Task})
|
||||
allVars["ALIAS"] = call.Task
|
||||
}
|
||||
|
||||
return allVars, nil
|
||||
}
|
||||
|
@ -226,6 +226,7 @@ func TestSpecialVars(t *testing.T) {
|
||||
{target: "print-taskfile", expected: toAbs(dir) + "/Taskfile.yml"},
|
||||
{target: "print-taskfile-dir", expected: toAbs(dir)},
|
||||
{target: "print-task-version", expected: "unknown"},
|
||||
{target: "print-task-dir", expected: toAbs(dir) + "/foo"},
|
||||
// Included
|
||||
{target: "included:print-task", expected: "included:print-task"},
|
||||
{target: "included:print-root-dir", expected: toAbs(dir)},
|
||||
|
3
testdata/special_vars/Taskfile.yml
vendored
3
testdata/special_vars/Taskfile.yml
vendored
@ -19,3 +19,6 @@ tasks:
|
||||
cmds:
|
||||
- echo "{{.ALIAS}}"
|
||||
print-task-alias-default: echo "{{.ALIAS}}"
|
||||
print-task-dir:
|
||||
dir: 'foo'
|
||||
cmd: echo {{.TASK_DIR}}
|
||||
|
@ -114,6 +114,7 @@ special variable will be overridden.
|
||||
| `ROOT_DIR` | The absolute path of the root Taskfile directory. |
|
||||
| `TASKFILE` | The absolute path of the included Taskfile. |
|
||||
| `TASKFILE_DIR` | The absolute path of the included Taskfile directory. |
|
||||
| `TASK_DIR` | The absolute path of the directory where the task is executed. |
|
||||
| `USER_WORKING_DIR` | The absolute path of the directory `task` was called from. |
|
||||
| `CHECKSUM` | The checksum of the files listed in `sources`. Only available within the `status` prop and if method is set to `checksum`. |
|
||||
| `TIMESTAMP` | The date object of the greatest timestamp of the files listed in `sources`. Only available within the `status` prop and if method is set to `timestamp`. |
|
||||
|
Loading…
Reference in New Issue
Block a user