[go] cmd 패키지를 사용한 서브커맨드 관리

Go 언어의 cmd 패키지는 명령줄 도구나 서브커맨드를 만들고 관리하는데 유용한 패키지입니다. 이를 통해 여러 독립적인 기능을 가진 여러 서브커맨드를 만들어 사용할 수 있으며, 이러한 서브커맨드를 손쉽게 관리할 수 있습니다.

서브커맨드 만들기

cmd 패키지를 사용하여 서브커맨드를 만들 때, 각 서브커맨드는 별도의 Go 파일로 구성될 수 있습니다. 각각의 파일은 main 패키지에 속하고 func main() 함수를 가져야 합니다. 이렇게 하면 각 서브커맨드는 독립적으로 실행될 수 있게 됩니다.

서브커맨드를 만들기 위해 별도의 파일을 만들고 main 패키지와 func main() 함수를 추가합니다. 예를 들어, subcommand1.gosubcommand2.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()
}

위 코드에서 subcommand1Cmdsubcommand2Cmd는 각각의 서브커맨드를 실행하는 함수이며, 이러한 함수를 만들고 cmd.AddCommand()를 통해 root command에 추가하면 됩니다.

이제 go run main.go subcommand1 혹은 go run main.go subcommand2와 같이 각 서브커맨드를 실행할 수 있습니다.

cmd 패키지를 사용하여 서브커맨드를 만들고 관리하는 것은 명령줄 도구를 개발하는 데 효율적이고 간편한 방법입니다.

더 자세한 내용은 공식 cobra document를 참고하세요.