Skip to content

Commit 968f34c

Browse files
committed
move generation command from justfile to //go:generate
1 parent aa4f599 commit 968f34c

18 files changed

Lines changed: 45 additions & 28 deletions

File tree

cmd/mangosql/mangosql.go

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"go/format"
88
"os"
99
"path"
10+
"path/filepath"
1011
"regexp"
1112
"slices"
1213
"strings"
@@ -174,7 +175,6 @@ func generate(opts GenerateOptions) error {
174175
}
175176

176177
if opts.Inline {
177-
fmt.Println(string(formatted))
178178
return nil
179179
}
180180

@@ -186,7 +186,9 @@ func generate(opts GenerateOptions) error {
186186
defer f.Close()
187187

188188
_, err = f.WriteString(string(formatted))
189-
fmt.Printf("Generated %s\n", path.Join(folder, file))
189+
if path, err := filepath.Abs(path.Join(folder, file)); err == nil {
190+
fmt.Printf("Generated %s\n", path)
191+
}
190192

191193
return err
192194
}

docs/getting-started/index.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,3 +92,12 @@ import "{your_project_url}/database"
9292
```
9393
:::
9494

95+
::: tip
96+
Mangosql can be combined with go:generate (ref: https://go.dev/blog/generate)
97+
98+
```go
99+
//go:generate mangosql --output ./client.go --driver mysql ./schema.sql
100+
```
101+
102+
This allow to keep code generation and usage really close to each other
103+
:::

internal/generator/generator.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,6 @@ func Generate(schema *core.SQLSchema, contents io.Writer, pkg string, driver str
149149
logConfig.Type = ``
150150
}
151151

152-
fmt.Println(logger, logConfig)
153-
154152
if err = headerTmpl.Execute(contents, HeaderData{
155153
Package: pkg,
156154
Url: "https://github.com/kefniark/mangosql",

justfile

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -11,30 +11,7 @@ docs:
1111
npm run docs:dev
1212

1313
generate:
14-
# tests
15-
go run ./cmd/mangosql/ --output ./tests/postgres/auto-increment/client.go --package autoincrement --logger console ./tests/postgres/auto-increment/schema.sql
16-
go run ./cmd/mangosql/ --output ./tests/postgres/composite/client.go --package composite --logger console ./tests/postgres/composite/schema.sql
17-
go run ./cmd/mangosql/ --output ./tests/postgres/types/client.go --package types --logger console ./tests/postgres/types/schema.sql
18-
19-
# test loggers
20-
go run ./cmd/mangosql/ --output ./tests/logger/zap-logger/client.go --package zaplogger --logger zap ./tests/logger/zap-logger/schema.sql
21-
go run ./cmd/mangosql/ --output ./tests/logger/logrus-logger/client.go --package logruslogger --logger logrus ./tests/logger/logrus-logger/schema.sql
22-
go run ./cmd/mangosql/ --output ./tests/logger/zerolog-logger/client.go --package zerologlogger --logger zerolog ./tests/logger/zerolog-logger/schema.sql
23-
24-
# test queries
25-
go run ./cmd/mangosql/ --output ./tests/queries/pq/client.go --package pq --driver pq --logger console ./tests/queries/sqlited/schema.sql
26-
go run ./cmd/mangosql/ --output ./tests/queries/pgx/client.go --package pgx --logger console ./tests/queries/sqlited/schema.sql
27-
go run ./cmd/mangosql/ --output ./tests/queries/mysql/client.go --package mysql --driver mysql --logger console ./tests/queries/mysql/schema.sql
28-
go run ./cmd/mangosql/ --output ./tests/queries/mariadb/client.go --package mariadb --driver mariadb --logger console ./tests/queries/mariadb/schema.sql
29-
go run ./cmd/mangosql/ --output ./tests/queries/sqlited/client.go --package sqlited --driver sqlite --logger console ./tests/queries/sqlited/schema.sql
30-
31-
# bench
32-
mkdir -p ./tests/bench/pq
33-
mkdir -p ./tests/bench/pgx
34-
mkdir -p ./tests/bench/sqlite
35-
go run ./cmd/mangosql/ --output ./tests/bench/pq/client.go --package pq --driver pq ./tests/bench/schema.sql
36-
go run ./cmd/mangosql/ --output ./tests/bench/pgx/client.go --package pgx ./tests/bench/schema.sql
37-
go run ./cmd/mangosql/ --output ./tests/bench/sqlite/client.go --package pq --driver sqlite ./tests/bench/schema.sqlite.sql
14+
go generate ./tests/...
3815

3916
bench:
4017
CGO_ENABLED=0 go test -bench=. -benchmem ./tests/bench | tee bench.log

tests/bench/pgx/gen.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package pgx
2+
3+
//go:generate go run ../../../cmd/mangosql/ --output ./client.go --package pgx ../schema.sql

tests/bench/pq/gen.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package pq
2+
3+
//go:generate go run ../../../cmd/mangosql/ --output ./client.go --package pq --driver pq ../schema.sql

tests/bench/sqlite/gen.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package sqlited
2+
3+
//go:generate go run ../../../cmd/mangosql/ --output ./client.go --package sqlited --driver sqlite ../schema.sqlite.sql

tests/logger/logrus-logger/client_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import (
1212
"github.com/stretchr/testify/assert"
1313
)
1414

15+
//go:generate go run ../../../cmd/mangosql/ --package logruslogger --logger logrus ./schema.sql
16+
1517
//go:embed *.sql
1618
var sqlFS embed.FS
1719

tests/logger/zap-logger/client_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import (
1212
"go.uber.org/zap/zaptest/observer"
1313
)
1414

15+
//go:generate go run ../../../cmd/mangosql/ --package zaplogger --logger zap ./schema.sql
16+
1517
//go:embed *.sql
1618
var sqlFS embed.FS
1719

tests/logger/zerolog-logger/client_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import (
1212
"github.com/stretchr/testify/assert"
1313
)
1414

15+
//go:generate go run ../../../cmd/mangosql/ --package zerologlogger --logger zerolog ./schema.sql
16+
1517
//go:embed *.sql
1618
var sqlFS embed.FS
1719

0 commit comments

Comments
 (0)