cmd/goqueryset/goqueryset.go
package main
import (
"context"
"flag"
"log"
"path/filepath"
"time"
"github.com/jirfag/go-queryset/internal/parser"
"github.com/jirfag/go-queryset/internal/queryset/generator"
)
func main() {
const defaultOutPath = "autogenerated_{in}"
inFile := flag.String("in", "models.go", "path to input file")
outFile := flag.String("out", defaultOutPath, "path to output file")
timeout := flag.Duration("timeout", time.Minute, "timeout for generation")
flag.Parse()
if *outFile == defaultOutPath {
*outFile = filepath.Join(filepath.Dir(*inFile), "autogenerated_"+filepath.Base(*inFile))
}
g := generator.Generator{
StructsParser: &parser.Structs{},
}
ctx, finish := context.WithTimeout(context.Background(), *timeout)
defer finish()
if err := g.Generate(ctx, *inFile, *outFile); err != nil {
log.Fatalf("can't generate query sets: %s", err)
}
}