Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var GenCmd = &cobra.Command{ Use: "gen", Short: "Generate openapi and ogen files", RunE: func(_ *cobra.Command, _ []string) error { if flagGenType != genTypeOAPI && outputPath == "" { return errors.New("flag 'output' should be specified for generating ogen files") } if flagGenType != genTypeOAPI { _, err := exec.LookPath("ogen") if err != nil { return errors.New(`ogen not found, install it via "go install -v github.com/ogen-go/ogen/cmd/ogen@latest"`) } } data, err := os.ReadFile(inputPath) if err != nil { return err } document, err := parser.ParseDocument(data) if err != nil { fmt.Println(err) os.Exit(1) } if verbose { parser.PrettyPrint(document) } spec, err := gen.GenerateSpec(document) if err != nil { fmt.Println(err) os.Exit(1) } switch { case outputPath == "": fmt.Println(spec) case flagGenType == genTypeOAPI: err := os.WriteFile(outputPath, []byte(spec), 0644) if err != nil { return err } default: swaggerPath := filepath.Join(outputPath, "server") err := os.MkdirAll(swaggerPath, os.ModePerm) if err != nil { return err } specPath := filepath.Join(swaggerPath, "openapi.yml") err = os.WriteFile(specPath, []byte(spec), 0644) if err != nil { return err } swaggerGenPath := filepath.Join(swaggerPath, "swagger_gen.go") err = os.WriteFile(swaggerGenPath, []byte(swaggerGen), 0644) if err != nil { return err } serverGenPath := filepath.Join(swaggerPath, "server_gen.go") serverGenFinal := strings.ReplaceAll(serverGen, "${URL}", document.Settings.URL) err = os.WriteFile(serverGenPath, []byte(serverGenFinal), 0644) if err != nil { return err } ogenPath := filepath.Join(outputPath, "oapi") ogen := exec.Command( "ogen", "--target", ogenPath, "--package", "oapi", "--clean", specPath, ) ogen.Stdout = os.Stdout ogen.Stderr = os.Stdout err = ogen.Run() if err != nil { return err } } return nil }, }
Functions ¶
This section is empty.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.