From e0fba129e01e138ecf106733012ed4e24f36a904 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Wed, 10 Jan 2024 00:15:27 -0600 Subject: handle 'any' Signed-off-by: Jeff Carr --- draw.go | 45 +++++++++++++++++++++++++++++++++++++++++++-- structs.go | 9 +++++++++ unix.go | 13 +++++++++++++ 3 files changed, 65 insertions(+), 2 deletions(-) diff --git a/draw.go b/draw.go index df1bfe0..36bfc41 100644 --- a/draw.go +++ b/draw.go @@ -1,6 +1,8 @@ package repostatus import ( + "strconv" + "go.wit.com/log" "go.wit.com/gui/gadgets" ) @@ -76,11 +78,50 @@ func draw(rs *RepoStatus) { rs.releaseVersion = rs.grid.NewButton("release version", func() { lasttag := rs.lasttag.Get() - ver := normalizeVersion(lasttag) - log.Warn("Should release version here", lasttag, ver) + var major, minor, revision string + major, minor, revision = splitVersion(lasttag) + log.Warn("Should release version here", lasttag) + log.Warn("Should release a,b,c", major, minor, revision) + + // rs.a = major + // rs.b = minor + // rs.c = revision + rs.a, _ = strconv.Atoi(major) + rs.b, _ = strconv.Atoi(minor) + rs.c, _ = strconv.Atoi(revision) + rs.setCombobox() }) rs.releaseVersion.Disable() + rs.vgroup = rs.window.Box().NewGroup("Version") + rs.major = gadgets.NewBasicCombobox(rs.grid, "master") + rs.minor = gadgets.NewBasicCombobox(rs.grid, "minor") + rs.revision = gadgets.NewBasicCombobox(rs.grid, "revision") + rs.grid.Margin() rs.grid.Pad() } + +func (rs *RepoStatus) setCombobox() { + addCombobox(rs.major, rs.a) + addCombobox(rs.major, rs.a + 1) + setCombobox(rs.major, rs.a) + + addCombobox(rs.minor, rs.b) + addCombobox(rs.minor, rs.b + 1) + setCombobox(rs.minor, rs.b) + + // rs.c := strconv.Atoi(revision) + rs.revision.Add(strconv.Itoa(rs.c + 1)) + rs.revision.Add(strconv.Itoa(rs.c + 2)) +} + +func addCombobox(cb *gadgets.BasicCombobox, i int) { + s := strconv.Itoa(i) + cb.Add(s) +} + +func setCombobox(cb *gadgets.BasicCombobox, i int) { + s := strconv.Itoa(i) + cb.Sdd(s) +} diff --git a/structs.go b/structs.go index e9c79bb..22915e8 100644 --- a/structs.go +++ b/structs.go @@ -36,6 +36,15 @@ type RepoStatus struct { develMerge *gui.Node releaseVersion *gui.Node + vgroup *gui.Node + minor *gadgets.BasicCombobox + major *gadgets.BasicCombobox + revision *gadgets.BasicCombobox + + a int + b int + c int + speed *gadgets.OneLiner speedActual *gadgets.OneLiner } diff --git a/unix.go b/unix.go index 3f7ad0b..e34aef6 100644 --- a/unix.go +++ b/unix.go @@ -89,3 +89,16 @@ func normalizeVersion(s string) string { log.Log(WARN, "normalizeVersion() s =", clean) return clean } + +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] + } +} -- cgit v1.2.3