12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package gogen
- import (
- "fmt"
- goformat "go/format"
- "io"
- "path/filepath"
- "strings"
- "zero/core/collection"
- "zero/tools/goctl/api/spec"
- "zero/tools/goctl/api/util"
- "zero/tools/goctl/vars"
- )
- func getParentPackage(dir string) (string, error) {
- absDir, err := filepath.Abs(dir)
- if err != nil {
- return "", err
- }
- pos := strings.Index(absDir, vars.ProjectName)
- if pos < 0 {
- return "", fmt.Errorf("%s not in project directory", dir)
- }
- return absDir[pos:], nil
- }
- func writeIndent(writer io.Writer, indent int) {
- for i := 0; i < indent; i++ {
- fmt.Fprint(writer, "\t")
- }
- }
- func writeProperty(writer io.Writer, name, tp, tag, comment string, indent int) error {
- writeIndent(writer, indent)
- var err error
- if len(comment) > 0 {
- comment = strings.TrimPrefix(comment, "//")
- comment = "//" + comment
- _, err = fmt.Fprintf(writer, "%s %s %s %s\n", strings.Title(name), tp, tag, comment)
- } else {
- _, err = fmt.Fprintf(writer, "%s %s %s\n", strings.Title(name), tp, tag)
- }
- return err
- }
- func getAuths(api *spec.ApiSpec) []string {
- var authNames = collection.NewSet()
- for _, g := range api.Service.Groups {
- if value, ok := util.GetAnnotationValue(g.Annotations, "server", "jwt"); ok {
- authNames.Add(value)
- }
- if value, ok := util.GetAnnotationValue(g.Annotations, "server", "signature"); ok {
- authNames.Add(value)
- }
- }
- return authNames.KeysStr()
- }
- func formatCode(code string) string {
- ret, err := goformat.Source([]byte(code))
- if err != nil {
- return code
- }
- return string(ret)
- }
|