Cobra는 강력한 최신 CLI 애플리케이션을 만들기 위한 라이브러리입니다.
Cobra는 Kubernetes, Hugo, GitHub CLI 등 많은 Go 프로젝트에서 사용됩니다. 이 목록에는 Cobra를 사용하는 보다 광범위한 프로젝트 목록이 포함되어 있습니다.
Cobra는 git & go 도구와 유사한 강력한 최신 CLI 인터페이스를 생성하기 위한 간단한 인터페이스를 제공하는 라이브러리입니다.
코브라는 다음을 제공합니다:
간편한 하위 명령 기반 CLI: app server
, app fetch
등
POSIX와 완전히 호환되는 플래그(짧은 버전 및 긴 버전 포함)
중첩된 하위 명령
글로벌, 로컬 및 계단식 플래그
지능적인 제안( app srver
... app server
말씀하신 건가요?)
명령 및 플래그에 대한 자동 도움말 생성
하위 명령에 대한 그룹화 도움말
-h
, --help
등의 자동 도움말 플래그 인식
애플리케이션(bash, zsh, fish, powershell)에 대해 자동으로 생성된 셸 자동 완성
애플리케이션에 대해 자동으로 생성된 매뉴얼 페이지
명령 별칭을 사용하면 내용을 깨지 않고도 변경할 수 있습니다.
자신만의 도움말, 사용법 등을 정의할 수 있는 유연성
12팩터 앱을 위한 viper와의 선택적 원활한 통합
Cobra는 명령, 인수 및 플래그의 구조를 기반으로 구축되었습니다.
명령은 작업을 나타내고 Args 는 사물이며 플래그는 해당 작업에 대한 수정자입니다.
최고의 애플리케이션은 사용될 때 문장처럼 읽혀지기 때문에 사용자는 직관적으로 애플리케이션과 상호 작용하는 방법을 알 수 있습니다.
따라야 할 패턴은 APPNAME VERB NOUN --ADJECTIVE
또는 APPNAME COMMAND ARG --FLAG
입니다.
몇 가지 좋은 실제 사례가 이 점을 더 잘 설명할 수 있습니다.
다음 예에서 'server'는 명령이고 'port'는 플래그입니다.
hugo server --port=1313
이 명령에서는 Git에게 URL을 그대로 복제하라고 지시합니다.
git clone URL --bare
명령은 애플리케이션의 중심점입니다. 애플리케이션이 지원하는 각 상호 작용은 명령에 포함됩니다. 명령에는 하위 명령이 있을 수 있으며 선택적으로 작업을 실행할 수 있습니다.
위의 예에서는 'server'가 명령입니다.
cobra.Command에 대한 추가 정보
플래그는 명령의 동작을 수정하는 방법입니다. Cobra는 POSIX 호환 플래그와 Go 플래그 패키지를 모두 지원합니다. Cobra 명령은 하위 명령까지 지속되는 플래그와 해당 명령에만 사용할 수 있는 플래그를 정의할 수 있습니다.
위의 예에서는 'port'가 플래그입니다.
플래그 기능은 POSIX 준수를 추가하면서 동일한 인터페이스를 유지하는 플래그 표준 라이브러리의 포크인 pflag 라이브러리에서 제공됩니다.
코브라를 사용하는 것은 쉽습니다. 먼저 go get
사용하여 최신 버전의 라이브러리를 설치합니다.
go get -u github.com/spf13/cobra@latest
다음으로 애플리케이션에 Cobra를 포함시킵니다.
"github.com/spf13/cobra" 가져오기
cobra-cli
는 cobra 애플리케이션과 명령 파일을 생성하는 명령줄 프로그램입니다. Cobra 기반 애플리케이션을 신속하게 개발하기 위해 애플리케이션 스캐폴딩을 부트스트랩합니다. 이는 Cobra를 애플리케이션에 통합하는 가장 쉬운 방법입니다.
다음을 실행하여 설치할 수 있습니다.
go install github.com/spf13/cobra-cli@latest
Cobra-CLI 생성기 사용에 대한 자세한 내용은 Cobra Generator README를 읽어보세요.
Cobra 라이브러리 사용에 대한 자세한 내용은 Cobra 사용자 가이드를 참조하세요.
Cobra는 Apache 2.0 라이센스에 따라 출시됩니다. LICENSE.txt를 참조하세요.