Skip to content

Commit 7e0a0d6

Browse files
committed
chore: parse package was missing some imports?
1 parent 6a3ec60 commit 7e0a0d6

File tree

1 file changed

+23
-30
lines changed

1 file changed

+23
-30
lines changed

scripts/dbgen/main.go

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"bytes"
66
"fmt"
77
"go/format"
8-
"go/parser"
98
"go/token"
109
"os"
1110
"path"
@@ -419,49 +418,43 @@ type querierFunction struct {
419418

420419
// readQuerierFunctions reads the functions from coderd/database/querier.go
421420
func readQuerierFunctions() ([]querierFunction, error) {
422-
localPath, err := localFilePath()
421+
f, err := parseDBFile("querier.go")
423422
if err != nil {
424-
return nil, err
423+
return nil, xerrors.Errorf("parse querier.go: %w", err)
425424
}
426-
427-
// Parse the database package as a whole so all references are resolved across
428-
// files.
429-
dirPath := filepath.Join(localPath, "..", "..", "..", "coderd", "database")
430-
packages, err := decorator.ParseDir(token.NewFileSet(), dirPath, func(info os.FileInfo) bool {
431-
if strings.HasSuffix(info.Name(), "_test.go") {
432-
return false
433-
}
434-
if !strings.HasSuffix(info.Name(), ".go") {
435-
return false
436-
}
437-
return true
438-
}, parser.ParseComments)
439-
440-
dbPackage := packages["database"]
441-
442-
findFile := func(name string) *dst.File {
443-
for k, v := range dbPackage.Files {
444-
if strings.HasSuffix(k, name) {
445-
return v
446-
}
447-
}
448-
return nil
449-
}
450-
451-
funcs, err := loadInterfaceFuncs(findFile("querier.go"), "sqlcQuerier")
425+
funcs, err := loadInterfaceFuncs(f, "sqlcQuerier")
452426
if err != nil {
453427
return nil, xerrors.Errorf("load interface %s funcs: %w", "sqlcQuerier", err)
454428
}
455429

430+
customFile, err := parseDBFile("modelqueries.go")
431+
if err != nil {
432+
return nil, xerrors.Errorf("parse modelqueriers.go: %w", err)
433+
}
456434
// Custom funcs should be appended after the regular functions
457-
customFuncs, err := loadInterfaceFuncs(findFile("modelqueries.go"), "customQuerier")
435+
customFuncs, err := loadInterfaceFuncs(customFile, "customQuerier")
458436
if err != nil {
459437
return nil, xerrors.Errorf("load interface %s funcs: %w", "customQuerier", err)
460438
}
461439

462440
return append(funcs, customFuncs...), nil
463441
}
464442

443+
func parseDBFile(filename string) (*dst.File, error) {
444+
localPath, err := localFilePath()
445+
if err != nil {
446+
return nil, err
447+
}
448+
449+
querierPath := filepath.Join(localPath, "..", "..", "..", "coderd", "database", filename)
450+
querierData, err := os.ReadFile(querierPath)
451+
if err != nil {
452+
return nil, xerrors.Errorf("read %s: %w", filename, err)
453+
}
454+
f, err := decorator.Parse(querierData)
455+
return f, err
456+
}
457+
465458
func loadInterfaceFuncs(f *dst.File, interfaceName string) ([]querierFunction, error) {
466459
var querier *dst.InterfaceType
467460
for _, decl := range f.Decls {

0 commit comments

Comments
 (0)