github.com/yoogoc/kratos-scaffold@v0.0.0-20240402032722-a538b3c18955/cmd/root.go (about)

     1  package cmd
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  
     7  	"github.com/spf13/cobra"
     8  	"github.com/yoogoc/kratos-scaffold/pkg/cli"
     9  )
    10  
    11  var settings = cli.New()
    12  
    13  const desc = `kratos-scaffold is a kratos-layout style scaffold.
    14  `
    15  
    16  func Execute() {
    17  	rootCmd := newRootCmd(os.Args[1:])
    18  	if err := rootCmd.Execute(); err != nil {
    19  		_, _ = fmt.Fprintln(os.Stderr, err)
    20  		os.Exit(1)
    21  	}
    22  }
    23  
    24  func newRootCmd(args []string) *cobra.Command {
    25  	rootCmd := &cobra.Command{
    26  		Use:                "kratos-scaffold",
    27  		Short:              "kratos-scaffold is a kratos-layout style scaffold.",
    28  		Long:               desc,
    29  		FParseErrWhitelist: cobra.FParseErrWhitelist{UnknownFlags: true},
    30  		Run: func(cmd *cobra.Command, args []string) {
    31  			_ = cmd.Help()
    32  		},
    33  	}
    34  
    35  	flags := rootCmd.PersistentFlags()
    36  
    37  	settings.AddFlags(flags)
    38  
    39  	_ = flags.Parse(args)
    40  
    41  	service := newServiceCmd()
    42  	biz := newBizCmd()
    43  	proto := newProtoCmd()
    44  	data := newDataCmd()
    45  
    46  	rootCmd.AddCommand(
    47  		newNewCmd(),
    48  		service,
    49  		biz,
    50  		proto,
    51  		data,
    52  		newGenerateCmd(proto, biz, data, service),
    53  	)
    54  
    55  	return rootCmd
    56  }