タスクの中身を編集するたびにファイルパスを調べるのが面倒

【mise】mise tasks addでmise.tomlにタスクを追加する で追加したタスクを後から編集する際、mise.tomlのどこにあるか、あるいはmise-tasks/のどのファイルかを探すのは手間である。mise tasks editは、タスク名を指定するだけで環境変数$EDITORにそのタスクを開くコマンドである。

既存のTOMLタスクを編集する

mise.toml内の[tasks.*]セクションとして定義済みのタスクを指定すると、mise.toml全体がエディタで開かれる。タスクの箇所だけが抜き出されるわけではない。

[tasks.test]
run = "echo running tests"
$ mise tasks edit test

上記のようなmise.tomlがあるとき、$EDITORにはmise.tomlのパスがそのまま渡される。

$ EDITOR="echo editor invoked with:" mise tasks edit test
editor invoked with: /path/to/project/mise.toml

存在しないタスク名を指定すると新規のファイルタスクが作られる

まだ定義されていないタスク名を指定すると、mise-tasks/ディレクトリ配下に実行可能なシェルスクリプトの雛形が作成され、それがエディタで開かれる。【mise】mise tasks addでmise.tomlにタスクを追加する-fと同じ形式である。

$ EDITOR=vim mise tasks edit greet

$ cat mise-tasks/greet
#!/usr/bin/env bash
set -euxo pipefail

エディタで内容を書き足して保存すれば、そのままタスクとして実行できる。

$ mise run greet
[greet] $ /path/to/project/mise-tasks/greet
+ echo hello from edited task
hello from edited task

-pでエディタを起動せずパスだけ確認する

-p(--path)を付けると、エディタを起動せずタスクのファイルパスだけを表示する。

$ mise tasks edit test --path
/path/to/project/mise.toml

$ mise tasks edit greet --path
/path/to/project/mise-tasks/greet

存在しないタスク名を指定した場合、--pathを付けてもエディタは起動しないが、mise-tasks/配下への雛形ファイルの作成自体は行われる点に注意する。パスを確認しただけのつもりが、空のタスクファイルが新規作成されている。