cargo foo --bar
Cargo는 첫 단어가 내장 명령인지 먼저 확인한다.
cargo foo는 내부 명령이 아니면 cargo-foo 실행 파일을 찾고, 나머지 인수를 그대로 넘긴다.
cargo foo --bar
Cargo는 첫 단어가 내장 명령인지 먼저 확인한다.
cargo-foo
내장 명령이 아니면 하이픈이 붙은 실행 파일 이름으로 바꾼다.
$PATH
설치된 binary를 찾고 권한과 플랫폼 실행 가능 여부를 확인한다.
exit code
stdout, stderr, 종료 코드는 일반 CLI와 같은 규칙으로 돌아온다.
| 검사 | 확인할 점 | 실패 신호 |
|---|---|---|
| 이름 | cargo-mytool처럼 cargo- 접두사를 붙인다. |
cargo가 “no such command”를 출력한다. |
| 인수 | cargo foo a b의 a b를 직접 파싱한다. |
옵션이 Cargo 쪽 옵션과 섞여 해석된다. |
| 배포 | cargo install 후 PATH에 binary가 들어가는지 본다. |
로컬에서는 되지만 다른 환경에서 명령을 못 찾는다. |
핵심: 확장 명령은 Cargo 플러그인 API가 아니라 실행 파일 이름 규칙과 PATH 탐색 규칙을 이용한다.