라벨이 Go인 게시물 표시

Go 와 Kingpin 으로 CLI 툴 빌드하기

이미지
잘 구성된 커맨드라인 인터페이스를 구성하는 것은 매우 어렵습니다. --help 입력없이 사용자가 도움말을 잘 얻고 관련 문서도 확인하도록 하는 것은 쉽지 않은 일입니다. 아마도 명령어가 기억나지 않아 --help 를 입력한 경험이 많을 것입니다. Atlassian에서는 CLI 툴을 이용하여 내부 서비스를 이용하는데 사용합니다. 이것은 Go 로 제작되었으며 CLI 라이브러리인  Kingpin  에서 제공하는 모든 기능을 이용합니다. 이 글에서는 Shell completion 힌트를 제공하는 CLI를 어떻게 제작하는지 기술할 것입니다. 툴에 대한 Bash 자동완성은 툴의 사용을 더욱 빠르게 도와줍니다. 하지만, Kingpin은 shell 자동완성을 지원하지는 않습니다. 그렇지만 여기 기능을 구현하였고 Kingpin 에 해당 기능을   pull request  를 통해 기여하였습니다. 이 글에서는 어떻게 CLI 가 Shell 자동완성 힌트를 제공하게 만드는지 설명합니다. Go 프로젝트 생성에 익숙하다고 가정하겠습니다. 이제 Go를 시작하셨다면,  Golang Getting Started  문서를 확인하십시요. 시작하기 CLI를 위한 새로운 go 패키지를 생성합니다.  package main import (      "os"      "gopkg.in/alecthomas/kingpin.v2" ) func main() {      app := kingpin.New( "my-app" ,  "My Example CLI Application With Bash Completion" )      kingpin.MustParse(app.Parse(os.Args[1:])) } ...