diff options
| -rw-r--r-- | globalDisplayOptions.go | 1 | ||||
| -rw-r--r-- | main.go | 37 | ||||
| -rw-r--r-- | setTargetVersion.go | 67 |
3 files changed, 68 insertions, 37 deletions
diff --git a/globalDisplayOptions.go b/globalDisplayOptions.go index a985141..c2a07dc 100644 --- a/globalDisplayOptions.go +++ b/globalDisplayOptions.go @@ -119,6 +119,7 @@ func globalDisplayOptions(box *gui.Node) { me.setBranchesToMasterB.Disable() } }) + grid.NextRow() grid.NewButton("increment tags", func() { for _, repo := range me.repos.View.AllRepos() { @@ -4,7 +4,6 @@ import ( "embed" "os" "path/filepath" - "strings" "go.wit.com/gui" "go.wit.com/lib/gui/shell" @@ -149,39 +148,3 @@ func setAllBranchesToMaster() bool { } return worked } - -func setTargetVersion() { - // go through and set the target versions for each repo - // todo: add sanity checking in repolist to verify these and/or autocompute them - // for now, just don't be stupid when you set your ENV vars - // widget I versioned early before I knew what the hell this would mean and can - // not be down versioned because that's not how GO versioning works. Once you - // set the version for a path, it's set in stone forever. (smart system!) - // we could rename go.wit.com/widget to go.wit.com/newwidget and restart the versioning - // system, but that's rediculous and this servers to always remind me to never make this mistake again - var count int - for i, repo := range me.repos.View.AllRepos() { - if repo == nil { - log.Info("initial scan repo = nil", i) - continue - } - - if repo.Status == nil { - log.Info("repo.status == nil", repo.Name()) - continue - } - - if repo.GoPath() == "go.wit.com/widget" { - repo.Status.SetTargetVersion("v" + widgetVersion) - } else { - repo.Status.SetTargetVersion("v" + releaseVersion) - } - if strings.HasPrefix(repo.GoPath(), "go.wit.com/dev/") { - lasttag := repo.Status.GetLastTagVersion() - repo.Status.SetTargetVersion(lasttag) - } - // repo.NewScan() - count += 1 - } - log.Info("target versions set for", count, "repos") -} diff --git a/setTargetVersion.go b/setTargetVersion.go new file mode 100644 index 0000000..cf1090c --- /dev/null +++ b/setTargetVersion.go @@ -0,0 +1,67 @@ +package main + +import ( + "strings" + + "go.wit.com/log" +) + +func setTargetVersion() { + // go through and set the target versions for each repo + // todo: add sanity checking in repolist to verify these and/or autocompute them + // for now, just don't be stupid when you set your ENV vars + // widget I versioned early before I knew what the hell this would mean and can + // not be down versioned because that's not how GO versioning works. Once you + // set the version for a path, it's set in stone forever. (smart system!) + // we could rename go.wit.com/widget to go.wit.com/newwidget and restart the versioning + // system, but that's rediculous and this servers to always remind me to never make this mistake again + var count int + for i, repo := range me.repos.View.AllRepos() { + if repo == nil { + log.Info("initial scan repo = nil", i) + continue + } + + if repo.Status == nil { + log.Info("repo.status == nil", repo.Name()) + continue + } + + if repo.GoPath() == "go.wit.com/widget" { + repo.Status.SetTargetVersion("v" + widgetVersion) + } else { + repo.Status.SetTargetVersion("v" + releaseVersion) + } + if strings.HasPrefix(repo.GoPath(), "go.wit.com/dev/") { + lasttag := repo.Status.GetLastTagVersion() + repo.Status.SetTargetVersion(lasttag) + } + // repo.NewScan() + count += 1 + } + log.Info("target versions set for", count, "repos") +} + +// trys to figure out if the version needs to be incremented +func incrementTargetVersion() bool { + var count int + for _, repo := range me.repos.View.AllRepos() { + if repo.ReadOnly() { + continue + } + lasttag := repo.Status.GetLastTagVersion() + master := repo.Status.GetMasterVersion() + + if lasttag != master { + log.Info("increment target version", repo.GoPath(), lasttag, master) + count += 1 + } else { + // check go dependancies for target version changes + } + } + log.Info("need to update target versions for", count, "repos") + if count == 0 { + return true + } + return false +} |
