diff options
| author | Jeff Carr <[email protected]> | 2024-12-12 02:07:25 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2024-12-12 02:07:25 -0600 |
| commit | adddfad2b7418dcaec4bd6c97219b72774fe0cac (patch) | |
| tree | 1ca72792c1aa77374685482222c5bb7aca8e8f56 | |
| parent | a0b6a435a7c9789f0972321468c5d9a6c19444d2 (diff) | |
increment target version
| -rw-r--r-- | currentVersions.go | 72 | ||||
| -rw-r--r-- | goDep.redoGoMod.go | 2 | ||||
| -rw-r--r-- | isPrimitive.go | 3 |
3 files changed, 76 insertions, 1 deletions
diff --git a/currentVersions.go b/currentVersions.go index b9329f6..9026149 100644 --- a/currentVersions.go +++ b/currentVersions.go @@ -6,6 +6,8 @@ package gitpb import ( "errors" "path/filepath" + "regexp" + "strconv" "strings" "unicode" @@ -217,3 +219,73 @@ func trimNonNumericFromStart(s string) string { } return "" } + +func normalizeVersion(s string) string { + // reg, err := regexp.Compile("[^a-zA-Z0-9]+") + parts := strings.Split(s, "-") + if len(parts) == 0 { + return "" + } + reg, err := regexp.Compile("[^0-9.]+") + if err != nil { + log.Log(GITPBWARN, "normalizeVersion() regexp.Compile() ERROR =", err) + return parts[0] + } + clean := reg.ReplaceAllString(parts[0], "") + log.Log(GITPB, "normalizeVersion() s =", clean) + return clean +} + +// golang doesn't seem to really support v0.1 and seems to want v0.1.0 +// todo: confirm this +func splitVersion(version string) (a, b, c string) { + tmp := normalizeVersion(version) + parts := strings.Split(tmp, ".") + switch len(parts) { + case 1: + return parts[0], "", "" + case 2: + return parts[0], parts[1], "" + default: + return parts[0], parts[1], parts[2] + } +} + +// changes the target minor. v0.1.3 becomes v0.2.0 +func (repo *Repo) IncrementTargetMinor() { + lasttag := repo.GetLastTag() + var major, minor, revision string + major, minor, revision = splitVersion(lasttag) + + olda, _ := strconv.Atoi(major) + oldb, _ := strconv.Atoi(minor) + oldc, _ := strconv.Atoi(revision) + + oldb += 1 + oldc = 0 + + newa := strconv.Itoa(olda) + newb := strconv.Itoa(oldb) + newc := strconv.Itoa(oldc) + + repo.SetTargetVersion("v" + newa + "." + newb + "." + newc) +} + +// changes the target revision. v0.1.3 becomes v0.1.4 +func (repo *Repo) IncrementTargetRevision() { + lasttag := repo.GetLastTag() + var major, minor, revision string + major, minor, revision = splitVersion(lasttag) + + olda, _ := strconv.Atoi(major) + oldb, _ := strconv.Atoi(minor) + oldc, _ := strconv.Atoi(revision) + + oldc += 1 + + newa := strconv.Itoa(olda) + newb := strconv.Itoa(oldb) + newc := strconv.Itoa(oldc) + + repo.SetTargetVersion("v" + newa + "." + newb + "." + newc) +} diff --git a/goDep.redoGoMod.go b/goDep.redoGoMod.go index 6aeb298..8406fd4 100644 --- a/goDep.redoGoMod.go +++ b/goDep.redoGoMod.go @@ -83,7 +83,7 @@ func (repo *Repo) PublishedLen() int { } // returns true if the last published -func (all *Repos) GoDepsChanged(repo *Repo) (bool, error) { +func (all *Repos) GoDepsChangedOld(repo *Repo) (bool, error) { var upgrade bool = false if repo.GoDeps == nil { repo.RedoGoMod() diff --git a/isPrimitive.go b/isPrimitive.go index 6579013..3870343 100644 --- a/isPrimitive.go +++ b/isPrimitive.go @@ -1,5 +1,8 @@ package gitpb +// +// DOES NOT MODIFY FILES +// // only reads in the go.mod file. doesn't change anything import ( |
