package main import ( "fmt" "regexp" "github.com/spf13/cobra" ) func initCmd() *cobra.Command { var name string cmd := &cobra.Command{ Use: "init", Short: "create a new mder folder", Run: func(cmd *cobra.Command, args []string) { if name == "" { if len(args) != 0 { name = args[0] } } var rule = fmt.Sprintf("[a-zA-Z0-9_]{%d}", len(name)) var reg = regexp.MustCompilePOSIX(rule) if !reg.MatchString(name) { sfault("folder name must be %s", rule) } if err := cloneTemplate(name); err != nil { sfault("clone template repository failed: %v", err) } sout("create folder %s success.", name) }, } cmd.Flags().StringVar(&name, "name", "", "Name of the folder to create") return cmd }