## 概要 以下のシチュエーションで動く[[Task]]の`Taskfile`を定義する方法。 - カレントディレクトリに`hoge`という実行ファイルがある - `hoge`にはPATHが通っていない - [[cmd]]、[[PowerShell]]、[[Bash]]のすべてで動く ## 課題 どのような表現でも動かないケースがある。 | 表現 | [[cmd]] | [[PowerShell]] | [[Bash]] | | --------- | ------- | -------------- | -------- | | `hoge` | O | O | X | | `./hoge` | X | O | O | | `.\\hoge` | O | O | X | ## 対応方法 OSによって挙動を変える。 - [[Windows]]なら`hoge` - それ以外なら`/hoge` `Taskfile`の先頭で変数定義して、それを使う。 ```yaml:Taskfile.yml version: "3" vars: HOGE: sh: | if [ {{OS}} = "windows" ]; then echo "hoge" else echo "./hoge" fi tasks: run: cmds: - "{{.HOGE}} arg" ```