package main import ( "embed" "fmt" "os" "path/filepath" "strings" "time" "go.wit.com/gui" "go.wit.com/lib/gui/shell" "go.wit.com/log" ) // TODO: autocompute these in the gui var releaseReasonS string var releaseVersion string var widgetVersion string //go:embed resources/* var resToolkit embed.FS func main() { me = new(autoType) me.allrepos = make(map[string]*repo) // TODO: autocompute these in the gui releaseReasonS = os.Getenv("GUIRELEASE_REASON") releaseVersion = os.Getenv("GUIRELEASE_VERSION") widgetVersion = os.Getenv("GUIRELEASE_WIDGET") if releaseVersion == "" { log.Info("GUIRELEASE_VERSION not set") os.Exit(0) } me.myGui = gui.New() me.myGui.InitEmbed(resToolkit) me.myGui.Default() me.mainWindow = me.myGui.NewWindow("GUI release manager") me.mainBox = me.mainWindow.NewBox("bw hbox", true) globalDisplayOptions(me.mainBox) // if you have a go.work file, you must delete it // TODO: check for go.work files anywhere homeDir, _ := os.UserHomeDir() gowork := filepath.Join(homeDir, "go/src/go.work") if shell.Exists(gowork) { log.Info("go.work must be deleted") os.Exit(0) } gosum := filepath.Join(homeDir, "go/src/go.wit.com/apps/guireleaser/go.sum") if ! shell.Exists(gosum) { log.Info("go.sum must exist here") os.Exit(0) } repoworld() me.releaseReasonS = releaseReasonS for _, repo := range me.allrepos { repo.status.UpdateCurrent() repo.newScan() if repo.String() == "go.wit.com/widget" { repo.targetVersion.SetText("v" + widgetVersion) } else { repo.targetVersion.SetText("v" + releaseVersion) } if strings.HasPrefix(repo.String(), "go.wit.com/dev/") { lasttag := repo.status.GetLastTagVersion() repo.targetVersion.SetText(lasttag) } // if repo.String() == "go.wit.com/apps/guireleaser" { } log.Info("Creating the Release Window") createReleaseBox(me.mainBox) createUnreleaseBox(me.mainBox) showHideRepos() release.openrepo.Disable() // scan repos every 30 seconds // check every second for the checkbox changing var i int = 60 myTicker(1*time.Second, "newScan()", func() { i += 1 if !me.scanEveryMinute.Checked() { if i < 60 { i = 60 } // print every 13 seconds if i%13 == 0 { log.Info("Not auto scanning", i) } return } if i < 60 { return } i = 0 duration := timeFunction(func() { scanGoSum() for _, repo := range me.allrepos { repo.newScan() } }) s := fmt.Sprint(duration) me.autoWorkingPwd.SetText(s) }) }