프로젝트 소개
Cobra는 Go로 작성된 강력하고 현대적인 CLI 애플리케이션을 구축하기 위한 라이브러리입니다. git와 Go 도구에 유사한 방식으로 명령줄 인터페이스를 구축할 수 있는 간단한 인터페이스를 제공하며, Kubernetes, Hugo, GitHub CLI 등의 프로젝트에서 사용됩니다.
README에 설명된 주요 기능:
- `app server` 및 `app fetch`와 같은 쉬운 서브커맨드 기반 CLI
- 단축 및 장기 버전 포함 완전 POSIX 호환 플래그
- 중첩 서브커맨드
- 전역, 로컬 및 계단식 플래그
- 오타가 있는 명령어지에 대한 지능형 제안(예: `app srver` 입력 시 `app server` 제안)
- 명령어 및 플래그에 대한 자동 도움말 생성
- 서브커맨드 그룹화 도움말
- `-h` 및 `--help`와 같은 도움말 플래그 자동 인식
- bash, zsh, fish, powershell을 위한 자동 생성 쉘 자동완성
- 자동 생성 man 페이지
- 명령어 별칭
- 사용자 정의 도움말 및 사용법 출력 정의 유연성
- 12-factor 앱용으로 viper 통합 옵션
Cobra는 커맨드, 인수, 플래그를 중심으로 구축되었습니다. 커맨드는 동작을 나타내고, args는 대상을 의미하며, 플래그는 해당 동작을 수정합니다. 권장 패턴은 `APPNAME VERB NOUN --ADJECTIVE` 또는 `APPNAME COMMAND ARG --FLAG`입니다.
설치는 `go get -u github.com/spf13/cobra@latest`로 수행한 후 `github.com/spf13/cobra`를 임포트합니다. companion 도구인 `cobra-cli`는 `go install github.com/spf13/cobra-cli@latest`로 설치하여 애플리케이션 스택과 명령어 파일을 생성할 수 있습니다.
플래그 기능은 pflag 라이브러리에서 제공되며, 이는 동일한 인터페이스를 유지하면서 POSIX 호환성을 추가한 Go 표준 flag 패키지의 포크입니다. Cobra는 Apache 2.0 라이선스로 배포됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.