frostfs-api-go/util/protogen/main.go
Evgenii Stratonikov d2622dbdae
All checks were successful
DCO action / DCO (pull_request) Successful in 59s
Tests and linters / Tests (1.19) (pull_request) Successful in 55s
Tests and linters / Tests (1.20) (pull_request) Successful in 56s
Tests and linters / Tests with -race (pull_request) Successful in 1m15s
Tests and linters / Lint (pull_request) Successful in 1m24s
[#77] protogen: Initial implementation
Signed-off-by: Evgenii Stratonikov <e.stratonikov@yadro.com>
2024-08-13 17:27:14 +03:00

37 lines
802 B
Go

package main
import (
"flag"
"fmt"
"os"
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/util/protogen/internalgengo"
"google.golang.org/protobuf/compiler/protogen"
)
func main() {
var flags flag.FlagSet
genFuzz := flags.Bool("fuzz", false, "generate fuzz tests")
yamlConfigPath := flags.String("config", "", "path to the configuration")
protogen.Options{
ParamFunc: flags.Set,
}.Run(func(gen *protogen.Plugin) error {
if *yamlConfigPath != "" {
s, e := os.Getwd()
fmt.Fprintln(os.Stderr, s, e)
data, err := os.ReadFile(*yamlConfigPath)
fmt.Fprintln(os.Stderr, string(data), err)
}
for _, f := range gen.Files {
if f.Generate {
internalgengo.GenerateFile(gen, f)
if *genFuzz {
internalgengo.GenerateFuzzTests(gen, f)
}
}
}
return nil
})
}