Go 언어의 cmd
패키지는 명령줄 도구나 서브커맨드를 만들고 관리하는데 유용한 패키지입니다. 이를 통해 여러 독립적인 기능을 가진 여러 서브커맨드를 만들어 사용할 수 있으며, 이러한 서브커맨드를 손쉽게 관리할 수 있습니다.
서브커맨드 만들기
cmd
패키지를 사용하여 서브커맨드를 만들 때, 각 서브커맨드는 별도의 Go 파일로 구성될 수 있습니다. 각각의 파일은 main
패키지에 속하고 func main()
함수를 가져야 합니다. 이렇게 하면 각 서브커맨드는 독립적으로 실행될 수 있게 됩니다.
서브커맨드를 만들기 위해 별도의 파일을 만들고 main
패키지와 func main()
함수를 추가합니다. 예를 들어, subcommand1.go
와 subcommand2.go
라는 파일을 만든 후, 각 파일에 main
패키지와 func main()
함수를 추가하면 됩니다.
서브커맨드 실행
이제 각 서브커맨드를 실행하기 위해 main
패키지에 cmd
패키지의 Execute()
함수를 사용합니다. 이 함수는 각 서브커맨드의 실행을 관리하고 최종적으로 적절한 서브커맨드를 실행합니다.
package main
import (
"github.com/spf13/cobra"
)
func main() {
cmd := &cobra.Command{Use: "myapp"}
// Add subcommands
cmd.AddCommand(subcommand1Cmd)
cmd.AddCommand(subcommand2Cmd)
// Execute the root command
cmd.Execute()
}
위 코드에서 subcommand1Cmd
와 subcommand2Cmd
는 각각의 서브커맨드를 실행하는 함수이며, 이러한 함수를 만들고 cmd.AddCommand()
를 통해 root command에 추가하면 됩니다.
이제 go run main.go subcommand1
혹은 go run main.go subcommand2
와 같이 각 서브커맨드를 실행할 수 있습니다.
cmd
패키지를 사용하여 서브커맨드를 만들고 관리하는 것은 명령줄 도구를 개발하는 데 효율적이고 간편한 방법입니다.
더 자세한 내용은 공식 cobra document를 참고하세요.