From be54390fcd3513d0c1a0a57f783e57f5fe8f9816 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Tue, 9 Jan 2024 19:35:05 -0600 Subject: [PATCH] figure out the version Signed-off-by: Jeff Carr --- draw.go | 3 ++- unix.go | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/draw.go b/draw.go index 255d5f3..df1bfe0 100644 --- a/draw.go +++ b/draw.go @@ -76,7 +76,8 @@ func draw(rs *RepoStatus) { rs.releaseVersion = rs.grid.NewButton("release version", func() { lasttag := rs.lasttag.Get() - log.Warn("Should release version here", lasttag) + ver := normalizeVersion(lasttag) + log.Warn("Should release version here", lasttag, ver) }) rs.releaseVersion.Disable() diff --git a/unix.go b/unix.go index 1f31700..3f7ad0b 100644 --- a/unix.go +++ b/unix.go @@ -5,6 +5,7 @@ import ( "os" "os/exec" "strings" + "regexp" "go.wit.com/log" ) @@ -52,3 +53,39 @@ func listFiles(directory string) []string { return files } + +/* +// string handling examples that might be helpful for normalizeInt() +isAlpha := regexp.MustCompile(`^[A-Za-z]+$`).MatchString + +for _, username := range []string{"userone", "user2", "user-three"} { + if !isAlpha(username) { + log.Log(GUI, "%q is not valid\n", username) + } +} + +const alpha = "abcdefghijklmnopqrstuvwxyz" + +func alphaOnly(s string) bool { + for _, char := range s { + if !strings.Contains(alpha, strings.ToLower(string(char))) { + return false + } + } + return true +} +*/ + +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(WARN, "normalizeVersion() regexp.Compile() ERROR =", err) + return parts[0] + } + clean := reg.ReplaceAllString(parts[0], "") + log.Log(WARN, "normalizeVersion() s =", clean) + return clean +}