github.com/ppphp/yayagf@v0.0.1/cmd/generate/controller/controller.go (about) 1 package controller 2 3 import ( 4 "bytes" 5 "html/template" 6 "io/ioutil" 7 "log" 8 "os" 9 "path/filepath" 10 "strings" 11 12 "github.com/ppphp/yayagf/internal/file" 13 14 "github.com/ppphp/yayagf/pkg/cli" 15 ) 16 17 func CommandFactory() (*cli.Command, error) { 18 c := &cli.Command{ 19 Run: func(args []string, flags map[string]string) (int, error) { 20 root, err := file.GetAppRoot() 21 if err != nil { 22 log.Printf("get project name failed: %v", err.Error()) 23 return 1, err 24 } 25 tmpl, err := template.New("controller").Parse(controllerTemplate) 26 if err != nil { 27 log.Printf("controller parse failed: %v", err.Error()) 28 return 1, err 29 } 30 _ = os.MkdirAll(filepath.Join(root, "app", "controller"), 0755) 31 for _, a := range args { 32 b := bytes.Buffer{} 33 if err := tmpl.Execute(&b, struct { 34 Lower, Capital string 35 }{strings.ToLower(a), strings.Title(strings.ToLower(a))}); err != nil { 36 log.Printf("jenkinsTemplate parse failed: %v", err.Error()) 37 return 1, err 38 } 39 if err := ioutil.WriteFile(filepath.Join(root, "app", "controller", strings.ToLower(a)+".go"), b.Bytes(), 0644); err != nil { 40 log.Printf("write file failed: %v", err.Error()) 41 return 1, err 42 } 43 } 44 return 0, nil 45 }, 46 } 47 return c, nil 48 } 49 50 const controllerTemplate = `package controller 51 52 // Index{{.Capital}} godoc 53 // @Summary {{.Capital}} 54 // @Tags {{.Lower}} 55 // @Accept json 56 // @Produce json 57 // @Success 200 {int} int 0 58 // @Failure 200 {int} int 0 59 // @Failure 200 {int} int 0 60 // @Router /{{.Lower}} [get] 61 func Index{{.Capital}}(c *maotai.Context) (int, string, gin.H) { 62 return 0, "", nil 63 } 64 65 // Create{{.Capital}} godoc 66 // @Summary Create{{.Capital}} 67 // @Tags {{.Lower}} 68 // @Accept json 69 // @Produce json 70 // @Success 200 {int} int 0 71 // @Failure 200 {int} int 0 72 // @Failure 200 {int} int 0 73 // @Router /{{.Lower}} [post] 74 func Create{{.Capital}}(c *maotai.Context) (int, string, gin.H) { 75 return 0, "", nil 76 } 77 `