何が起きるか
container(ct)グループのサブコマンドは parser 上 [name] を受け付けない。しかし bin/devbase の name 解決は project|container|ct を同じ分岐で扱う。そのため _PROJECT_NAME_SUBCOMMANDS に載るサブコマンドへ実在するプロジェクト名を渡すと、wrapper が名前を取り除いてそのプロジェクトへ移動し、parser の検査を迂回する。
bin/devbase:407 付近
case "$_resolved_cmd" in
project|container|ct)
if [[ "$_PROJECT_NAME_SUBCOMMANDS" == *" ${2:-} "* ]] && maybe_cd_project "${3:-}"; then
devbase container up carmo / container down carmo / container open carmo などが、いずれも carmo を対象に動く(存在しない名前なら parser が usage エラーにする)。
決めること
| 論点 |
案 |
container を名前解決から外すか |
外すと container <sub> <name> は実在性によらず usage エラーになる。container は非推奨なので、project へ誘導する形で揃えられる |
| 今の動きを仕様として残すか |
残すなら container の parser に [name] を足して、wrapper と parser を一致させる |
由来
PR #199(devbase open)のクロスレビューで codex が指摘した(container open carmo)。open に限らず container グループ全体の既存の動きであるため、#199 では変えずに起票した。
進行
モード: standard / 作業ツリー: .worktrees/fix/plan61-name-resolution / 計画: issues/PLAN61_name-resolution.md
何が起きるか
container(ct)グループのサブコマンドは parser 上[name]を受け付けない。しかしbin/devbaseの name 解決はproject|container|ctを同じ分岐で扱う。そのため_PROJECT_NAME_SUBCOMMANDSに載るサブコマンドへ実在するプロジェクト名を渡すと、wrapper が名前を取り除いてそのプロジェクトへ移動し、parser の検査を迂回する。devbase container up carmo/container down carmo/container open carmoなどが、いずれも carmo を対象に動く(存在しない名前なら parser が usage エラーにする)。決めること
containerを名前解決から外すかcontainer <sub> <name>は実在性によらず usage エラーになる。containerは非推奨なので、projectへ誘導する形で揃えられるcontainerの parser に[name]を足して、wrapper と parser を一致させる由来
PR #199(
devbase open)のクロスレビューで codex が指摘した(container open carmo)。openに限らずcontainerグループ全体の既存の動きであるため、#199 では変えずに起票した。進行
モード: standard / 作業ツリー:
.worktrees/fix/plan61-name-resolution/ 計画:issues/PLAN61_name-resolution.md