タスク一覧だけでは中身まで分からない

【mise】mise tasks lsでタスク一覧を詳しく確認する でタスクの一覧は確認できるが、1件のタスクが具体的にどんなコマンドを実行し、何に依存しているかまでは分からない。mise tasks infoは、指定した1件のタスクの詳細情報を表示するコマンドである。

mise tasks infoの基本

タスク名を指定するだけで、説明・依存タスク・実行コマンドなどをまとめて確認できる。

[tasks.test]
description = "Test the application"
alias = "t"
depends = ["build"]
run = "echo testing"

[tasks.build]
run = "echo building"
$ mise tasks info test
Task: test
Aliases: t
Description: Test the application
Source: /path/to/project/mise.toml
Depends on: build

Run:
  echo testing

Usage Spec:
  name test
  bin test

description/alias/dependsのように省略可能な項目は、設定していなければ表示自体が省略される。

$ mise tasks info build
Task: build
Description:
Source: /path/to/project/mise.toml

Run:
  echo building

Usage Spec:
  name build
  bin build

ファイルタスクの場合はFileが表示される

mise-tasks/配下の実行可能スクリプトとして定義したファイルタスクを指定すると、Run:の代わりにFile:へスクリプトのパスが表示される。Sourceもそのスクリプトファイル自身を指す。

$ mise tasks info deploy
Task: deploy
Description:
Source: /path/to/project/mise-tasks/deploy
File: /path/to/project/mise-tasks/deploy

Usage Spec:
  name deploy
  bin deploy

–jsonで詳細な情報を取得する

--jsonを付けると、プレーンテキストでは省略される情報も含めて、タスクの全設定をJSONで取得できる。ヘルプのExamplesに載っている出力例は簡略化された古いもので、実際にはcachetoolsusage_specなど、はるかに多くのフィールドを含んだJSONが返る。

$ mise tasks info test --json | jq 'keys'
[
  "aliases",
  "cache",
  "config_sources",
  "depends",
  "depends_post",
  "description",
  "dir",
  "env",
  "file",
  "hide",
  "interactive",
  "name",
  "outputs",
  "quiet",
  "raw",
  "run",
  "shell",
  "silent",
  "source",
  "sources",
  "tools",
  "usage_spec",
  "wait_for"
]

タスクの設定を他のツールから機械的に読み取りたい場合は、ヘルプの簡略化された例ではなく、実際に--jsonを実行して得られるキー一覧を確認してから使う。