github.com/ppphp/yayagf@v0.0.1/internal/swagger/swagger.go (about) 1 // just rewrite, a lot of copy paste 2 package swagger 3 4 import ( 5 "encoding/json" 6 "fmt" 7 "io/ioutil" 8 "log" 9 "os" 10 "path" 11 "path/filepath" 12 "strconv" 13 14 "github.com/swaggo/swag" 15 ) 16 17 func GenerateSwagger(root string) error { 18 19 p := swag.New() 20 21 if err := p.ParseAPI(root, "main.go", 100); err != nil { 22 return err 23 } 24 25 swagger := p.GetSwagger() 26 27 b, err := json.MarshalIndent(swagger, "", " ") 28 if err != nil { 29 return err 30 } 31 32 OutputDir := filepath.Join(root, "app", "doc") 33 if err := os.MkdirAll(OutputDir, os.ModePerm); err != nil { 34 return err 35 } 36 37 docFileName := path.Join(OutputDir, "docs.go") 38 if err := ioutil.WriteFile(docFileName, []byte(fmt.Sprintf(`package doc 39 40 const Swagger = %s 41 `, strconv.Quote(string(b)))), 0644); err != nil { 42 return err 43 } 44 45 log.Printf("create docs.go at %+v", docFileName) 46 47 return nil 48 }