github.com/unionj-cloud/go-doudou@v1.3.8-0.20221011095552-0088008e5b31/cmd/internal/svc/codegen/httpmiddleware.go (about) 1 package codegen 2 3 import ( 4 "github.com/sirupsen/logrus" 5 "github.com/unionj-cloud/go-doudou/version" 6 "os" 7 "path/filepath" 8 "text/template" 9 ) 10 11 var httpMwTmpl = `/** 12 * Generated by go-doudou {{.Version}}. 13 * You can edit it as your need. 14 */ 15 package httpsrv` 16 17 // GenHttpMiddleware generates http middleware file 18 func GenHttpMiddleware(dir string) { 19 var ( 20 err error 21 mwfile string 22 f *os.File 23 tpl *template.Template 24 httpDir string 25 ) 26 httpDir = filepath.Join(dir, "transport/httpsrv") 27 if err = os.MkdirAll(httpDir, os.ModePerm); err != nil { 28 panic(err) 29 } 30 31 mwfile = filepath.Join(httpDir, "middleware.go") 32 if _, err = os.Stat(mwfile); os.IsNotExist(err) { 33 if f, err = os.Create(mwfile); err != nil { 34 panic(err) 35 } 36 defer f.Close() 37 tpl, _ = template.New("middleware.go.tmpl").Parse(httpMwTmpl) 38 _ = tpl.Execute(f, struct { 39 Version string 40 }{ 41 Version: version.Release, 42 }) 43 } else { 44 logrus.Warnf("file %s already exists", mwfile) 45 } 46 }