fix: release script

This commit is contained in:
Pete Davison
2025-09-15 12:17:28 +00:00
parent 092b9b6391
commit 57bf348829

View File

@@ -3,7 +3,6 @@ package main
import ( import (
"fmt" "fmt"
"os" "os"
"os/exec"
"regexp" "regexp"
"strings" "strings"
"time" "time"
@@ -16,13 +15,11 @@ import (
const ( const (
changelogSource = "CHANGELOG.md" changelogSource = "CHANGELOG.md"
changelogTarget = "website/docs/changelog.md" changelogTarget = "website/src/docs/changelog.md"
versionFile = "internal/version/version.txt"
) )
var ( var changelogReleaseRegex = regexp.MustCompile(`## Unreleased`)
changelogReleaseRegex = regexp.MustCompile(`## Unreleased`)
versionRegex = regexp.MustCompile(`(?m)^ "version": "\d+\.\d+\.\d+",$`)
)
// Flags // Flags
var ( var (
@@ -46,7 +43,7 @@ func release() error {
return errors.New("error: expected version number") return errors.New("error: expected version number")
} }
version, err := getVersion() version, err := getVersion(versionFile)
if err != nil { if err != nil {
return err return err
} }
@@ -64,28 +61,18 @@ func release() error {
return err return err
} }
if err := setVersionFile("internal/version/version.txt", version); err != nil { if err := setVersionFile(versionFile, version); err != nil {
return err
}
if err := setJSONVersion("package.json", version); err != nil {
return err
}
if err := setJSONVersion("package-lock.json", version); err != nil {
return err return err
} }
return nil return nil
} }
func getVersion() (*semver.Version, error) { func getVersion(filename string) (*semver.Version, error) {
cmd := exec.Command("git", "describe", "--tags", "--abbrev=0") b, err := os.ReadFile(filename)
b, err := cmd.Output()
if err != nil { if err != nil {
return nil, err return nil, err
} }
return semver.NewVersion(strings.TrimSpace(string(b))) return semver.NewVersion(strings.TrimSpace(string(b)))
} }
@@ -144,17 +131,3 @@ func changelog(version *semver.Version) error {
func setVersionFile(fileName string, version *semver.Version) error { func setVersionFile(fileName string, version *semver.Version) error {
return os.WriteFile(fileName, []byte(version.String()+"\n"), 0o644) return os.WriteFile(fileName, []byte(version.String()+"\n"), 0o644)
} }
func setJSONVersion(fileName string, version *semver.Version) error {
// Read the JSON file
b, err := os.ReadFile(fileName)
if err != nil {
return err
}
// Replace the version
new := versionRegex.ReplaceAllString(string(b), fmt.Sprintf(` "version": "%s",`, version.String()))
// Write the JSON file
return os.WriteFile(fileName, []byte(new), 0o644)
}