Skip to content

終了コード

すべてのコマンドが、失敗の種類を示す終了コードを返します。スクリプトや エージェントは、出力を解析せずに分岐できます。

コード意味再試行の可否
0成功
1分類できないエラー不可
4見つからない(workspace / サービス / プロジェクト)不可
5すでに存在する不可
6minato.toml が見つからない不可
7minato.toml が不正不可
8git リポジトリの外で実行された不可
9コンテナランタイムに接続できない
10ランタイムの操作が失敗した不可
11未対応の機能不可

「再試行の可否」は、何も変更せずに再実行しても成功しうるかどうかを示します。 該当するのはコード 9 のみで、Docker または Apple Container を起動してから 再実行してください。

exec は例外です

minato exec は上表のコードではなく、実行したコマンドの終了コードを 返します。

console
$ minato exec web -- npm test; echo $?
1

テストの成否を終了コードだけで判定できるようにするための仕様です。実行した コマンドが上表と同じ値を返した場合は区別できないため、確実に判定する必要が あるときは --json の出力を参照してください。

JSON 出力の場合

console
$ minato url nope --json; echo $?
{
  "error": {
    "code": "not_found",
    "message": "no service named `nope`. Available: web, api",
    "hint": "…"
  }
}
4

error.code が機械可読な識別子で、終了コードはその数値表現です。hint が 含まれる場合は、次に取るべき操作が記述されています。

--json 指定時はエラーも stdout に出力されるため、呼び出し側は 1 つの ストリームと 1 つの終了コードのみを確認すれば済みます。

Released under the MIT License.