いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Task (go-task) メモ-37 (TASK_DIR変数)(v3.41.0から追加)

関連記事

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

これまでの Task に関する記事は上の関連記事をご参照ください。

v3.41.0にて、TASK_DIRという変数が新たに追加されました。

この変数には、実行時のタスクファイルの場所が設定されます。

親のタスクファイルにて、子のタスクファイルをincludeしている場合

子のタスクファイル内の TASK_DIR の値は親と同じになります。

(子のタスクファイルを直接実行した場合は、当然子のタスクファイルの場所になります)

実行例

ファイル構成

$ tree .
.
├── README.md
├── subdir
│   └── Taskfile.yml
└── Taskfile.yml

1 directory, 3 files

親タスクファイル

# https://taskfile.dev

version: '3'

includes:
  subdir: ./subdir

tasks:
  default:
    cmds:
      - task: call-self-taskdir
      - task: subdir:taskdir
      - task: call-subdir-taskfile
  call-self-taskdir:
      - echo "{{.TASK_DIR}}"
  call-subdir-taskfile:
      - task -d "{{.TASK_DIR}}/subdir" taskdir

子のタスクファイル

# https://taskfile.dev

version: '3'

tasks:
  taskdir:
    cmds:
      - echo "{{.TASK_DIR}}"

実行

$ task
task: [call-self-taskdir] echo "/workspace/try-gotask/34.v341-taskdir"
/workspace/try-gotask/34.v341-taskdir                                   # <-- 親タスクファイルの場所
task: [subdir:taskdir] echo "/workspace/try-gotask/34.v341-taskdir"
/workspace/try-gotask/34.v341-taskdir                                   # <-- 子のタスクファイルからの実行だが、場所は親タスクファイルの場所となる
task: [call-subdir-taskfile] task -d "/workspace/try-gotask/34.v341-taskdir/subdir" taskdir
task: [taskdir] echo "/workspace/try-gotask/34.v341-taskdir/subdir"
/workspace/try-gotask/34.v341-taskdir/subdir                            # <-- 子のタスクファイルを直接実行した場合は、場所は子のタスクファイルの場所

参考情報


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。