package main import ( "fmt" "os" "strings" ) func init() { register(Check{ Seq: 25, ID: "2f", Title: "sqlc compile and buf generate", Run: func(ctx *ScanContext, rep *Reporter) { // Check 2f: sqlc compile and buf generate fmt.Println("=== Check 2f: sqlc compile and buf generate ===") codegenTargets := discoverCodegenTargets(ctx.repoRoot, ctx.backendDir, ctx.backendTargets, ctx.pluginTargets, ctx.includeCoreTargets) if len(codegenTargets) > 0 { completedCodegenTargets, codegenFailures, codegenErr := runCodegenChecks(codegenTargets) if codegenErr != nil { fmt.Printf(" ERROR: failed to run codegen checks: %v\n", codegenErr) os.Exit(2) } if len(codegenFailures) > 0 { fmt.Printf(" FAIL: %d codegen target(s) failed sqlc compile or buf generate:\n", len(codegenFailures)) for _, failure := range codegenFailures { fmt.Printf(" [%s] %s\n", failure.stage, failure.target) if failure.output != "" { for line := range strings.SplitSeq(failure.output, "\n") { fmt.Printf(" %s\n", line) } } } rep.Fail() } else { fmt.Printf(" OK: sqlc compile / buf generate clean for %d target(s)\n", len(completedCodegenTargets)) for _, target := range completedCodegenTargets { fmt.Printf(" - %s\n", target) } } } else { fmt.Println(" SKIP: no sqlc or buf codegen targets found") } fmt.Println() }, }) }