diff --git a/cmd/README.md b/cmd/README.md new file mode 100644 index 00000000..065b46a3 --- /dev/null +++ b/cmd/README.md @@ -0,0 +1,10 @@ +### Versioner + +Before a release run in project root: + +```sh +go run cmd/versioner.go v1.5.1 +``` + +where tag is the next tag to be used. + diff --git a/cmd/version.go.tmpl b/cmd/version.go.tmpl new file mode 100644 index 00000000..10ce0724 --- /dev/null +++ b/cmd/version.go.tmpl @@ -0,0 +1,5 @@ +// Code generated from versioner.go; DO NOT EDIT. + +package dbsql + +var DriverVersion = "{{.Version}}" \ No newline at end of file diff --git a/cmd/versioner.go b/cmd/versioner.go new file mode 100644 index 00000000..eff85c75 --- /dev/null +++ b/cmd/versioner.go @@ -0,0 +1,39 @@ +package main + +import ( + "fmt" + "os" + "path" + "regexp" + "runtime" + "text/template" +) + +func getTemplateFilePath() string { + _, filename, _, _ := runtime.Caller(0) // nolint:dogsled + dir := path.Dir(filename) + return path.Join(dir, "version.go.tmpl") +} + +func main() { + tag := os.Args[1] // The first argument is the tag + // If the tag is not a valid semantic version, then it is not a release tag + re := regexp.MustCompile(`^v\d+\.\d+\.\d+$`) + if !re.MatchString(tag) { + panic(fmt.Errorf("tag %s is not a valid semantic version", tag)) + } + tmpl, err := template.ParseFiles(getTemplateFilePath()) + if err != nil { + panic(err) + } + f, err := os.Create("version.go") + if err != nil { + panic(err) + } + defer f.Close() + if err := tmpl.Execute(f, map[string]string{ + "Version": string(tag), + }); err != nil { + panic(err) + } +} diff --git a/driver.go b/driver.go index ec28fe28..63e4a1c8 100644 --- a/driver.go +++ b/driver.go @@ -13,8 +13,6 @@ func init() { sql.Register("databricks", &databricksDriver{}) } -var DriverVersion = "1.3.1" // update version before each release - type databricksDriver struct{} // Open returns a new connection to Databricks database with a DSN string. diff --git a/version.go b/version.go new file mode 100644 index 00000000..cdef36bb --- /dev/null +++ b/version.go @@ -0,0 +1,5 @@ +// Code generated from versioner.go; DO NOT EDIT. + +package dbsql + +var DriverVersion = "v1.5.1" \ No newline at end of file