mise.tomlに定義したタスクの詳細を確認したい
【mise】mise runでタスクを定義して実行する
で紹介したmise tasksは、タスク名とdescriptionだけを表示するシンプルな一覧である。タスクの数が増えてくると、定義元の設定ファイルや隠しタスクの有無、グローバルとプロジェクト固有の区別など、絞り込んで確認したくなる場合がある。mise tasks lsは一覧表示に特化したサブコマンドで、これらのオプションを備えている。mise tasksはmise tasks lsのショートハンドであり、両者の結果は同じである。
基本的な一覧表示
mise.tomlにdescription付きのタスクを定義しておく。
[tasks.build]
description = "アプリをビルドする"
run = "echo building..."
[tasks.test]
description = "テストを実行する"
alias = "ut"
run = "echo testing..."
mise tasks lsを実行すると、タスク名とdescriptionの一覧が表示される。
$ mise tasks ls
build アプリをビルドする
test テストを実行する
エイリアスや定義元ファイルも表示する
--extended(-x)オプションを付けると、エイリアスや定義元の設定ファイルパスなど全カラムを表示する。
$ mise tasks ls --extended
build ./mise.toml アプリをビルドする
test ut ./mise.toml テストを実行する
testタスクに設定したalias = "ut"が表示され、mise run utのようにエイリアスでも実行できることが分かる。エイリアス名がtasksなど他のmiseサブコマンドの組み込みエイリアスと衝突する場合、mise runを省略した短縮実行(mise <エイリアス名>)はそちらが優先されるため、mise runを付けた形で実行する。
隠しタスクを表示する
タスクにhide = trueを設定すると、通常のmise tasks lsには表示されなくなる。
[tasks.deploy]
description = "デプロイする"
hide = true
run = "echo deploying..."
$ mise tasks ls
build アプリをビルドする
test テストを実行する
--hiddenオプションを付けると、隠しタスクも含めて表示できる。
$ mise tasks ls --hidden
build アプリをビルドする
deploy デプロイする
test テストを実行する
他のタスクからdependsで呼び出すだけで、単体で直接実行させたくない補助的なタスクをhide = trueにしておくと、一覧表示をシンプルに保てる。
グローバルタスクとプロジェクト固有タスクを絞り込む
~/.config/mise/config.tomlのようなグローバル設定ファイルにもタスクを定義できる。全プロジェクト共通で使うタスクをグローバル側に定義しておくと、プロジェクト固有のタスクと合わせて一覧に表示される。
$ mise tasks ls
build アプリをビルドする
lint 全プロジェクト共通のlintタスク
test テストを実行する
--global(-g)を付けるとグローバルタスクだけ、--local(-l)を付けるとプロジェクト固有のタスクだけに絞り込める。
$ mise tasks ls --global
lint 全プロジェクト共通のlintタスク
$ mise tasks ls --local
build アプリをビルドする
test テストを実行する
タスク名だけを出力する
--name-onlyオプションを付けると、説明やカラムなしでタスク名だけを1行ずつ出力する。
$ mise tasks ls --name-only
build
test
fzfのような絞り込みツールへパイプで渡し、選択したタスク名をmise runに渡すといった使い方に向いている。
JSON形式で出力する
--json(-J)オプションを付けると、タスクの詳細情報をJSON形式で出力する。nameやdescriptionに加えて、依存タスクを表すdependsや実行ディレクトリを表すdirなども含まれる。
$ mise tasks ls --json
[
{
"name": "build",
"aliases": [],
"description": "アプリをビルドする",
"source": "/path/to/mise.toml",
"depends": [],
...
},
...
]
jqなどと組み合わせて、CIスクリプトから特定条件のタスクだけを抽出する用途に使える。
並び順を変える
既定ではタスク名の昇順で表示されるが、--sortオプションでname・alias・description・sourceのいずれかのカラムを基準にソートできる。--sort-orderでasc(昇順、既定)・desc(降順)を指定する。
$ mise tasks ls --sort description --sort-order desc
test テストを実行する
build アプリをビルドする
タスク数が多いプロジェクトで、定義元のファイルごとにまとめて見たい場合は--sort sourceが使える。
