共通フラグ
| フラグ | 用途 |
|---|---|
--dry-run | 送らずに、送るはずだった内容を表示する |
-y, --yes | 破壊的な操作(DELETE)の確認を省く |
--confirm <名前> | 配下のデータごと削除・初期化する操作で、対象の名前の入力を求める |
--compact | JSON を1行で出す |
--extract <項目> | 応答から1つの項目を生の値で取り出す(jq -r と同じ。items.0.name のように入れ子の項目も指定できる) |
--set <フラグ>.<項目>=<値> | リソース本体を項目ごとに組み立てる(値を @ファイル名 にするとファイルから読み込む) |
--set-json | --set と同じだが値を JSON として解釈する |
--fields a,b | 返す属性を絞る(応答は既定で全属性。一覧では必ず使う) |
--all | 全ページを取得して1つにまとめる(一覧コマンドのみ) |
--limit | 1ページの件数(既定は10件) |
--format raw | 応答を無加工で出す |
--out FILE | 応答をファイルに書き出す |
--wait | restIds が空になるまで呼び直す(再構築のみ) |
--verify-publish | 保存できたかだけでなく、静的ファイルを書き出せたかまで MT のログで確かめる |
--dir DIR | ディレクトリ内のファイルをまとめて送る(アップロード)/ディレクトリへの書き出しとディレクトリからの書き戻しをする(テンプレート) |
--replace | 送り先の同名アセットを消してから送る(アップロードのみ) |
--profile <名前> | そのコマンドの実行時だけ接続先を切り替える |
--base-url <URL> | プロファイルを使わずに接続先を指定する |
--lang ja|en | 表示言語(既定は環境変数から判定) |
-v, --verbose | 送受信の要約を標準エラーに出す |
--method-override | PUT/DELETE を POST + __method で送る(前段が PUT/DELETE を遮断しているとき) |
--insecure | TLS 証明書を検証しない(検証用サーバ向け) |
個別のフラグの補足
--fields はどのコマンドでも使えます
MT は GET にしか fields を用意していません(226 中 67)が、対応していない エンドポイントでは、応答を受け取ってから mtb が絞ります。API の非対称をそのまま利用者に 負わせない、というのがこの CLI の立場です。
bash
mtb sites entries create --site-id 1 --entry @entry.json --fields id --compact
# => {"id":42}指定した属性名が1つも一致しなければ、mtb は綴り違いとして知らせます。
--extract と --out
--extract を --out と組み合わせると、取り出した値をバイト列のままファイルに書き出します (端末に出すときだけ末尾に改行が付きます)。--extract と --format raw の併用は 呼び出し方の誤りです(raw は無加工を意味するため)。
--dry-run は送りません
送るはずだったメソッド・URL・本文を表示して終了します。破壊的な操作の事前確認に使います。
--yes と --confirm
DELETE は実行前に確認を求めます
端末でない環境(CI など)では確認できないので、--yes が無ければ 実行せずにエラーになります。
サイトの削除・ログの全件削除・テンプレートの初期化は、--yes だけでは実行できません。 対象の名前を --confirm に指定する必要があります。
bash
mtb sites delete 2 --yes # 何が失われるかと、打つべき名前が出る
mtb sites delete 2 --yes --confirm "アイデアマンズ ブログ"--all が使えるコマンド
--all が使えるのは、limit と offset の両方のパラメータを持つコマンドだけです。 totalResults には実際に取得した件数が入ります。
--verify-publish の注意点
リクエストが2回増えるので既定では off です。ログを読めないとき(権限不足など)は、 確認できなかったことを伝えるだけで、成功した保存をエラーにはしません。
指定しなかったパラメータは送信しません
フラグで指定しなかったパラメータは、既定値があっても API に送りません。 MT 側の既定値を使う設計なので、既定値を明示的に送りたいときは、その値を フラグで指定してください。