Files
upstream-mirror 0f4df23290
Some checks failed
kotlin / test (push) Has been skipped
python / test (push) Has been skipped
typescript / test (push) Has been skipped
go / build darwin/amd64 (push) Has been cancelled
go / build linux/amd64 (push) Has been cancelled
go / build windows/amd64 (push) Has been cancelled
go / build darwin/arm64 (push) Has been cancelled
go / build linux/arm64 (push) Has been cancelled
go / build windows/arm64 (push) Has been cancelled
go / test (push) Has been cancelled
go / vuln_check (push) Has been cancelled
snapshot of https://github.com/sqlc-dev/sqlc.git (main, 2026-09-16; blobs > 131072B omitted)
2026-09-16 02:17:34 +05:00

151 lines
3.1 KiB
Go

package main
import (
"flag"
"fmt"
"io/fs"
"log"
"os"
"path/filepath"
"strings"
"github.com/google/go-cmp/cmp"
)
func main() {
curr := flag.String("c", "", "current version")
next := flag.String("n", "", "next version")
write := flag.Bool("w", false, "write out changes")
flag.Parse()
if err := run(*curr, *next, *write); err != nil {
log.Fatal(err)
}
}
func run(current, next string, realmode bool) error {
write := func(path, old, new string) error {
if realmode {
if err := os.WriteFile(path, []byte(new), 0644); err != nil {
return fmt.Errorf("write error: %s: %w", path, err)
}
} else {
if diff := cmp.Diff(old, new); diff != "" {
log.Printf("%s: %s\n", path, diff)
}
}
return nil
}
{
path := filepath.Join(".github", "ISSUE_TEMPLATE", "BUG_REPORT.yml")
c, err := os.ReadFile(path)
if err != nil {
return err
}
old := string(c)
if !strings.Contains(old, "- "+next) {
item := "- " + current
new := strings.ReplaceAll(old, item, "- "+next+"\n "+item)
if err := write(path, old, new); err != nil {
return err
}
}
}
{
path := filepath.Join("docs", "overview", "install.md")
c, err := os.ReadFile(path)
if err != nil {
return err
}
old := string(c)
new := strings.ReplaceAll(old, "v"+current, "v"+next)
new = strings.ReplaceAll(new, "sqlc_"+current, "sqlc_"+next)
if err := write(path, old, new); err != nil {
return err
}
}
{
path := filepath.Join("internal", "info", "facts.go")
c, err := os.ReadFile(path)
if err != nil {
return err
}
old := string(c)
new := strings.ReplaceAll(old, "v"+current, "v"+next)
if err := write(path, old, new); err != nil {
return err
}
}
{
path := filepath.Join("docs", "conf.py")
c, err := os.ReadFile(path)
if err != nil {
return err
}
old := string(c)
new := strings.ReplaceAll(old, "release = '"+current, "release = '"+next)
if err := write(path, old, new); err != nil {
return err
}
}
walker := func(path string, info fs.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() {
return nil
}
switch filepath.Ext(path) {
case ".go", ".kt", ".py", ".json", ".md":
c, err := os.ReadFile(path)
if err != nil {
return err
}
old := string(c)
new := strings.ReplaceAll(old,
`"sqlc_version": "v`+current,
`"sqlc_version": "v`+next)
new = strings.ReplaceAll(new,
`sqlc-version: "`+current,
`sqlc-version: "`+next)
new = strings.ReplaceAll(new,
`sqlc-version: '`+current,
`sqlc-version: '`+next)
new = strings.ReplaceAll(new, "sqlc v"+current, "sqlc v"+next)
new = strings.ReplaceAll(new, "SQLC_VERSION=v"+current, "SQLC_VERSION=v"+next)
if err := write(path, old, new); err != nil {
return err
}
default:
}
return nil
}
{
p := filepath.Join("internal", "endtoend", "testdata")
if err := filepath.Walk(p, walker); err != nil {
return err
}
}
{
p := filepath.Join("examples")
if err := filepath.Walk(p, walker); err != nil {
return err
}
}
{
p := filepath.Join("docs")
if err := filepath.Walk(p, walker); err != nil {
return err
}
}
return nil
}