Skip to content

SQLC Config Discovery

gogenfilter can discover SQLC configuration files and extract output directories, so you don’t have to hardcode paths.

configs, err := gogenfilter.FindSQLCConfigs([]string{"./..."})
if err != nil {
log.Fatal(err)
}
for _, cfg := range configs {
fmt.Printf("Config: %s\n", cfg.Path)
}
dirs, err := gogenfilter.GetSQLOutputDirs([]string{"."})
if err != nil {
log.Fatal(err)
}
for _, dir := range dirs {
fmt.Printf("Output: %s\n", dir)
}
  • sqlc.yaml
  • sqlc.yml

The parser uses the github.com/go-faster/yaml library for robust YAML handling.

Combine config discovery with include patterns for precise scoping:

dirs, _ := gogenfilter.GetSQLOutputDirs([]string{"."})
includePatterns := make([]string, len(dirs))
for i, dir := range dirs {
includePatterns[i] = dir + "/**"
}
f := gogenfilter.NewFilter(
gogenfilter.Enabled(),
gogenfilter.WithFilterOptions(gogenfilter.FilterSQLC),
gogenfilter.WithIncludePatterns(includePatterns...),
)