いろいろ備忘録日記

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

Task (go-task) メモ-36 (パスの結合)(joinPath)

関連記事

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

概要

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

タスクにてファイルパスを扱うことが結構多いです。そこで知っておくと便利なビルドイン関数が joinPath です。

使い方はそのまんまですが {{ joinPath A B }} となります。

サンプル

以下のようなタスクファイルを用意します。

# https://taskfile.dev

version: "3"

vars:
  PROJ_DIR: ..
  BASE_DIR: "{{.PROJ_DIR}}/01.helloworld"

tasks:
  default:
    cmds:
      - task: files1
      - cmd: echo ------------------------------------------
        silent: true
      - task: files2
  files1:
    dir: '{{.BASE_DIR}}'
    vars:
      ITEMS:
        - README.md
        - Taskfile.yml
    cmds:
      - for: { var: ITEMS }
        cmd: echo {{joinPath .BASE_DIR .ITEM}}
  files2:
    vars:
      ITEMS:
        sh: find {{.PROJ_DIR}} -type f -name '*.yml'
    cmds:
      - for: { var: ITEMS }
        cmd: echo {{.ITEM}}
    silent: true

実行すると以下のように、以下のようになります。

$ task -d 32.joinpath/
task: [files1] echo ../01.helloworld/README.md
../01.helloworld/README.md
task: [files1] echo ../01.helloworld/Taskfile.yml
../01.helloworld/Taskfile.yml
------------------------------------------
../.gitpod.yml
../01.helloworld/Taskfile.yml
../03.default-task/Taskfile.yml
../04.env/Taskfile.yml
../05.dotenv/Taskfile.yml
../06.include/Taskfile.yml
../06.include/other/Taskfile.yml
../06.include/other2/othertaskfile.yml
../07.no-color/Taskfile.yml
../08.silent/Taskfile.yml
../09.os-specific/Taskfile.yml
../09.os-specific/Taskfile_linux.yml
../09.os-specific/Taskfile_windows.yml
../10.variable/Taskfile.yml
../11.cliargs/Taskfile.yml
../12.defer/Taskfile.yml
../13.internal-task/Taskfile.yml
../14.shopt/Taskfile.yml
../15.single-command-task/Taskfile.yml
../16.prompt/Taskfile.yml
../17.dryrun/Taskfile.yml
../18.preconditions/Taskfile.yml
../19.loop-over-static-list/Taskfile.yml
../20.loop-over-task-source/Taskfile.yml
../21.loop-over-variables/Taskfile.yml
../22.loop-rename-variables/Taskfile.yml
../23.loop-over-task/Taskfile.yml
../24.prevent-same-build/Taskfile.yml
../25.run-cmd-on-windows/Taskfile.yml
../26.global-taskfile/Taskfile.yml
../27.run-interactive-cli-app/Taskfile.yml
../28.remote-taskfile/Taskfile.yml
../29.platform-specific-tasks/Taskfile.yml
../30.loop-over-dependencies/Taskfile.yml
../31.v338-cli_silent-cli_verbose/Taskfile.yml
../32.joinpath/Taskfile.yml

try-gotask/32.joinpath at main · devlights/try-gotask · GitHub

参考情報

taskfile.dev

github.com

engineer.retty.me

zenn.dev

zenn.dev


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

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