jirfag/go-queryset

View on GitHub
cmd/goqueryset/goqueryset.go

Summary

Maintainability
A
0 mins
Test Coverage
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)
    }
}