summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-11-05 01:44:24 -0600
committerJeff Carr <[email protected]>2024-11-05 01:44:24 -0600
commita72c700f6336da2dd33d5559c8451ccab97172df (patch)
tree8de17ebb874f1e02ebddecbb73dfb8544b645426
parentd3cc4d6a154680e2ff1463ff2d1d3687fef82c1a (diff)
got a temp window to work as a workaround
-rw-r--r--Makefile28
-rw-r--r--argv.go2
-rw-r--r--doSingleRepo.go73
-rw-r--r--http.go170
-rw-r--r--initRepoList.go12
-rw-r--r--main.go60
-rw-r--r--quickCmd.go50
-rw-r--r--tempView.go36
8 files changed, 158 insertions, 273 deletions
diff --git a/Makefile b/Makefile
index 8d371ee..5369d9d 100644
--- a/Makefile
+++ b/Makefile
@@ -10,9 +10,16 @@ all: build
# single-really-do-it: build
# ./guireleaser go.wit.com/apps/go-clone --increment --release --reason "testing guireleaser"
-# stderr: build
-# echo "writing to /tmp/guireleaser.stderr"
-# ./guireleaser >/tmp/guireleaser.stderr 2>&1
+stderr: build
+ echo "writing to /tmp/guireleaser.stderr"
+ ./guireleaser >/tmp/guireleaser.stderr 2>&1
+
+do-release:
+ make curl-release-list
+ make curl-incrementAllTargetVersions
+ make curl-release-list
+ make curl-findNext
+ make curl-showNext
goimports:
goimports -w *.go
@@ -42,6 +49,9 @@ redomod:
curl-help:
curl --silent http://localhost:9419/help
+curl-tempWin:
+ curl --silent http://localhost:9419/tempWin
+
curl-setBranchesToMasterB:
curl --silent http://localhost:9419/setBranchesToMasterB
@@ -52,8 +62,14 @@ curl-findNext:
curl-showNext:
curl --silent http://localhost:9419/showNext
-curl-setTargetVersion:
- curl --silent http://localhost:9419/setTargetVersion?version=v0.22.5
+curl-doRelease:
+ curl --silent http://localhost:9419/doRelease
+
+curl-setTargetVersion-virtigo-v0.1.1:
+ curl --silent http://localhost:9419/setTargetVersion?version=v0.1.1
+
+curl-incrementAllTargetVersions:
+ curl --silent http://localhost:9419/setAllTargetVersions
curl-IncrementMinorVersion:
curl --silent http://localhost:9419/IncrementMinorVersion?repo=go.wit.com/toolkit/debian
@@ -63,7 +79,7 @@ curl-IncrementRevisonVersion:
# report on the release
curl-release-list:
- curl --silent http://localhost:9419/releaselist?readonly=true
+ curl --silent http://localhost:9419/releaseList?readonly=true
#curl-doSingleRepo:
# curl --silent 'http://localhost:9419/doSingleRepo?repo=go.wit.com/gui&dryrun=false'
diff --git a/argv.go b/argv.go
index e012789..ecbfbd2 100644
--- a/argv.go
+++ b/argv.go
@@ -7,7 +7,7 @@ package main
*/
type argv struct {
- Repo string `arg:"positional" help:"go import path"`
+ // Repo string `arg:"positional" help:"go import path"`
// Increment bool `arg:"--increment" help:"auto increment"`
// Release bool `arg:"--release" help:"do a release an exit"`
DryRun bool `arg:"--dry-run,env:DRYRUN" help:"don't actually do the release"`
diff --git a/doSingleRepo.go b/doSingleRepo.go
deleted file mode 100644
index 9262a07..0000000
--- a/doSingleRepo.go
+++ /dev/null
@@ -1,73 +0,0 @@
-package main
-
-import (
- "os"
-
- "go.wit.com/lib/gui/repolist"
- "go.wit.com/log"
-)
-
-func doSingleRepo(myRepoName string) {
- // the repo from the command line
- var myrepo *repolist.RepoRow
-
- // find myself. the guireleaser directory is used as a working scratchpad
- // for running go commands that can mess up the go.* files
- // for _, repo := range me.repos.View.AllRepos() {
- myrepo = me.repos.View.FindRepoByName(myRepoName)
-
- me.mainWindow.Disable()
- defer me.mainWindow.Enable()
- if myrepo == nil {
- log.Info("could not find", myargs.Repo)
-
- }
- log.Info("only going to do repo:", myrepo.GoPath())
- tmp := myargs.Reason
- if tmp == "" {
- tmp = os.Getenv("GUIRELEASE_REASON")
- }
- if tmp == "" {
- tmp = "made by guireleaser"
- }
-
- // increment all the versions
- for _, repo := range me.repos.View.AllRepos() {
- if whitelist(repo.GoPath()) {
- continue
- }
- if repo.ReadOnly() {
- continue
- }
- lasttag := repo.Status.LastTag()
- if repo.Status.GetCurrentVersion() == lasttag {
- log.Info("skipping unchanged repo", repo.Status.GoPath())
- repo.Status.SetTargetVersion(lasttag)
- continue
- }
- repo.Status.IncrementRevisionVersion("go-clone")
- }
- // rescan all the repos
- me.repos.View.ScanRepositories()
-
- myrepo.Status.MakeRedomod()
- myrepo.Status.IncrementRevisionVersion(tmp)
- _, err := me.repos.View.CheckValidGoSum(myrepo)
- if err != nil {
- log.Info("go mod tidy not ok", err)
- return
- }
- if !checkValidGoSum(myrepo) {
- log.Info("go.sum checks failed")
- os.Exit(0)
- }
- setCurrentRepo(myrepo, "should be good to release", "pretty sure")
- log.Info("DO THE RELEASE HERE")
- log.Info("going to release", myrepo.GoPath(), "as version", myrepo.Status.GetTargetVersion())
- if myargs.DryRun {
- log.Info("--dry-run == true")
- } else {
- log.Info("--dry-run == true")
- // doRelease()
- }
-}
diff --git a/http.go b/http.go
index 633b171..9428e7c 100644
--- a/http.go
+++ b/http.go
@@ -6,7 +6,6 @@ import (
"os"
"strings"
- "go.wit.com/lib/gui/gowit"
"go.wit.com/log"
)
@@ -26,37 +25,40 @@ func okHandler(w http.ResponseWriter, r *http.Request) {
var route string
route = cleanURL(r.URL.Path)
- if route == "/help" {
+ switch route {
+ case "/help":
msg(w, "list/ list modified repos")
msg(w, "list?readonly=true shows every repo")
msg(w, "")
- msg(w, "setBranchesToMasterB maybe this sets everything to master?")
- msg(w, "doSingleRepo?repo=go.wit.com/gui attempts to release gui")
+ msg(w, "doRelease runs doRelease()")
+ msg(w, "findNext runs findNext()")
+ msg(w, "showNext shows the repo for doRelease()")
+ msg(w, "setTargetVersion set the target version for findNext()")
+ msg(w, "setAllTargetVersions?version=v0.12.4 set ever repo to target version")
+ msg(w, "setCurrentRepo?repo=go.wit.com/gui runs setCurrentRepo(repo)")
+ msg(w, "")
+ msg(w, "setAllBranchesToMaster git checkout master on every repo")
msg(w, "")
msg(w, "setVersion?repo=go.wit.com/gui?target=0.2 attempts to set the target version to 0.2")
msg(w, "")
- return
- }
-
- if route == "/release" {
- // simpleRelease(w, r)
- return
- }
+ case "/tempWin":
+ tempWin := makeTempView()
- if route == "/gitpull" {
- return
- }
-
- if route == "/list" {
- readonly := r.URL.Query().Get("readonly")
- onlydirty := r.URL.Query().Get("onlydirty")
- perfect := r.URL.Query().Get("perfect")
-
- me.repos.View.PrintReport(w, readonly, onlydirty, perfect)
- return
- }
-
- if route == "/findNext" {
+ loop := me.repos.View.UnmergedRepos()
+ for loop.Scan() {
+ repo := loop.Repo()
+ tempWin.View.ShowRepo(repo)
+ msg(w, "UnmergedRepo: " + repo.Name())
+ }
+ case "/doRelease":
+ buttonDisable()
+ if doRelease() {
+ buttonEnable()
+ msg(w, "doRelease() worked")
+ } else {
+ msg(w, "doRelease() failed")
+ }
+ case "/findNext":
me.Disable()
defer me.Enable()
if findNext() {
@@ -71,10 +73,7 @@ func okHandler(w http.ResponseWriter, r *http.Request) {
msg(w, me.current.StandardHeader())
msg(w, me.current.StandardReleaseHeader())
- return
- }
-
- if route == "/setCurrentRepo" {
+ case "/setCurrentRepo":
repoName := r.URL.Query().Get("repo")
version := r.URL.Query().Get("version")
comment := r.URL.Query().Get("comment")
@@ -83,16 +82,14 @@ func okHandler(w http.ResponseWriter, r *http.Request) {
msg(w, "version: "+version)
msg(w, "comment: "+comment)
- repo := me.repos.View.FindRepoByName(repoName)
- if repo == nil {
- msg(w, "FindRepoByName() returned nil")
- return
- }
+ repo := me.repos.View.FindRepoByName(repoName)
+ if repo == nil {
+ msg(w, "FindRepoByName() returned nil")
+ return
+ }
setCurrentRepo(repo, "HTTP", "doRelease() ?")
- }
-
- if route == "/IncrementRevisonVersion" {
+ case "/IncrementRevisonVersion":
repo := r.URL.Query().Get("repo")
version := r.URL.Query().Get("version")
comment := r.URL.Query().Get("comment")
@@ -101,10 +98,7 @@ func okHandler(w http.ResponseWriter, r *http.Request) {
msg(w, "version: "+version)
me.current.Status.IncrementRevisionVersion(comment)
- return
- }
-
- if route == "/IncrementMinorVersion" {
+ case "/IncrementMinorVersion":
repo := r.URL.Query().Get("repo")
version := r.URL.Query().Get("version")
@@ -112,72 +106,80 @@ func okHandler(w http.ResponseWriter, r *http.Request) {
msg(w, "version: "+version)
me.current.Status.IncrementMinorVersion("trying minor")
+ case "/setAllBranchesToMaster":
+ msg(w, "set all branches to master")
+ me.Disable()
+ defer me.Enable()
+ if setAllBranchesToMaster() {
+ // if it succeeds, disable this button
+ me.setBranchesToMasterB.Disable()
+ }
return
- }
-
- if route == "/setTargetVersion" {
+ case "/setTargetVersion":
version := r.URL.Query().Get("version")
repo := r.URL.Query().Get("repo")
msg(w, "repo: "+repo)
msg(w, "version: "+version)
+ if me.current == nil {
+ msg(w, "me.current == nil")
+ return
+ }
me.current.Status.SetTargetVersion(version)
- return
- }
+ case "/setAllTargetVersions":
+ version := r.URL.Query().Get("version")
+ msg(w, "version: "+version)
- if route == "/showNext" {
- msg(w, "repo: "+me.release.repo.String())
- msg(w, "name: "+me.release.version.String())
- msg(w, "notes: "+me.release.notes.String())
- msg(w, "status: "+me.release.status.String())
+ loop := me.repos.View.ReposSortByName()
+ for loop.Scan() {
+ repo := loop.Repo()
+
+ master := repo.Status.GetMasterVersion()
+ cur := repo.Status.GetCurrentVersion()
+ if master == cur {
+ repo.Status.SetTargetVersion(cur)
+ } else {
+ repo.Status.IncrementRevisionVersion("Nov 2024 test")
+ }
+ }
+ case "/showNext":
+ msg(w, "gui repo: "+me.release.repo.String())
+ msg(w, "gui name: "+me.release.version.String())
+ msg(w, "gui notes: "+me.release.notes.String())
+ msg(w, "gui status: "+me.release.status.String())
+ msg(w, "")
if checkValidGoSum(me.current) {
msg(w, "checkValidGoSum() == true")
} else {
msg(w, "checkValidGoSum() == false")
}
+ if me.current.Status.IsReleased() {
+ msg(w, "IsReleased() == true")
+ } else {
+ msg(w, "IsReleased() == false")
+ }
+ msg(w, "")
+
msg(w, me.current.StandardHeader())
msg(w, me.current.StandardReleaseHeader())
- return
- }
+ case "/list":
+ readonly := r.URL.Query().Get("readonly")
+ onlydirty := r.URL.Query().Get("onlydirty")
+ perfect := r.URL.Query().Get("perfect")
- if route == "/releaselist" {
+ me.repos.View.PrintReport(w, readonly, onlydirty, perfect)
+ case "/releaseList":
readonly := r.URL.Query().Get("readonly")
perfect := r.URL.Query().Get("perfect")
me.repos.View.PrintReleaseReport(w, readonly, perfect)
- return
- }
-
- if route == "/goweblist" {
- gowit.DumpVersions(me.repos.View)
- return
- }
-
- if route == "/setBranchesToMasterB" {
- msg(w, "set all branches to master")
- me.Disable()
- defer me.Enable()
- if setAllBranchesToMaster() {
- // if it succeeds, disable this button
- me.setBranchesToMasterB.Disable()
- }
- return
- }
-
- if route == "/doSingleRepo" {
- reponame := r.URL.Query().Get("repo")
- msg(w, "doSingleRepo: "+reponame)
- doSingleRepo(reponame)
- }
-
- if route == "/quit" {
+ case "/quit":
+ msg(w, "Got URL /quit")
os.Exit(0)
- return
+ default:
+ msg(w, "BAD URL = "+route)
}
-
- log.Warn("BAD URL =", route)
- fmt.Fprintln(w, "BAD URL =", route)
}
// starts and sits waiting for HTTP requests
diff --git a/initRepoList.go b/initRepoList.go
index 454b3c5..be01f1a 100644
--- a/initRepoList.go
+++ b/initRepoList.go
@@ -21,3 +21,15 @@ func (r *repoWindow) initRepoList() {
r.View.NewRepo(path)
}
}
+
+func (r *repoWindow) tmpRepoList() {
+
+ log.Info("scanning everything in ~/go/src")
+ for i, path := range repostatus.ListGitDirectories() {
+ // log.Info("addRepo()", i, path)
+ path = strings.TrimPrefix(path, me.goSrcPwd.String())
+ path = strings.Trim(path, "/")
+ log.Info("addRepo()", i, path)
+ r.View.NewRepo(path)
+ }
+}
diff --git a/main.go b/main.go
index 4bd08ef..e332162 100644
--- a/main.go
+++ b/main.go
@@ -91,7 +91,7 @@ func main() {
// parse config file and scan for .git repos
me.repos.initRepoList()
- setTargetVersion()
+ // setTargetVersion()
// register a Show/Hide function for the repo list table
me.repos.View.RegisterHideFunction(hideFunction)
@@ -118,64 +118,6 @@ func main() {
*/
}
- /*
- if myargs.Repo != "" {
- me.mainWindow.Hide()
- if myrepo == nil {
- log.Info("could not find", myargs.Repo)
- os.Exit(0)
- }
- log.Info("only going to do repo:", myrepo.GoPath())
- tmp := myargs.Reason
- if tmp == "" {
- tmp = os.Getenv("GUIRELEASE_REASON")
- }
- if tmp == "" {
- tmp = "made by guireleaser"
- }
-
- // increment all the versions
- for _, repo := range me.repos.View.AllRepos() {
- if whitelist(repo.GoPath()) {
- continue
- }
- if repo.ReadOnly() {
- continue
- }
- lasttag := repo.Status.LastTag()
- if repo.Status.GetCurrentVersion() == lasttag {
- log.Info("skipping unchanged repo", repo.Status.GoPath())
- repo.Status.SetTargetVersion(lasttag)
- continue
- }
- repo.Status.IncrementRevisionVersion("go-clone")
- }
- // rescan all the repos
- me.repos.View.ScanRepositories()
-
- myrepo.Status.MakeRedomod()
- myrepo.Status.IncrementRevisionVersion(tmp)
- _, err := me.repos.View.CheckValidGoSum(myrepo)
- if err != nil {
- log.Info("go mod tidy not ok", err)
- return
- }
- if !checkValidGoSum(myrepo) {
- log.Info("go.sum checks failed")
- os.Exit(0)
- }
- setCurrentRepo(myrepo, "should be good to release", "pretty sure")
- log.Info("DO THE RELEASE HERE")
- log.Info("going to release", myrepo.GoPath(), "as version", myrepo.Status.GetTargetVersion())
- if myargs.DryRun {
- log.Info("--dry-run == true")
- } else {
- doRelease()
- }
- os.Exit(0)
- }
- */
-
if me.release.guireleaser == nil {
log.Info("Can not release if guireleaser was not found")
os.Exit(0)
diff --git a/quickCmd.go b/quickCmd.go
deleted file mode 100644
index a1e8b8e..0000000
--- a/quickCmd.go
+++ /dev/null
@@ -1,50 +0,0 @@
-package main
-
-import (
- "os"
-
- "go.wit.com/lib/gui/repostatus"
- "go.wit.com/log"
-)
-
-func doesExist(path string) bool {
- if _, err := os.Stat(path); err != nil {
- if os.IsNotExist(err) {
- return false
- }
- }
- return true
-}
-
-// only errors on bad errors
-func quickCmd(fullpath string, cmd []string) bool {
- var err error
- var b bool
- var output string
-
- if me.autoWorkingPwd.String() != fullpath {
- me.autoWorkingPwd.SetValue(fullpath)
- }
-
- if me.autoDryRun.Checked() {
- log.Warn("RUN --dry-run", fullpath, cmd)
- return false
- } else {
- log.Warn("RUN:", fullpath, cmd)
- }
-
- err, b, output = repostatus.RunCmd(fullpath, cmd)
- if err != nil {
- log.Warn("cmd =", cmd)
- log.Warn("err =", err)
- log.Warn("b =", b)
- log.Warn("output =", string(output))
- return false
- } else if !b {
- log.Warn("b =", b)
- log.Warn("output =", string(output))
- return true
- }
- log.Warn("output = ", string(output))
- return true
-}
diff --git a/tempView.go b/tempView.go
new file mode 100644
index 0000000..f264432
--- /dev/null
+++ b/tempView.go
@@ -0,0 +1,36 @@
+package main
+
+import (
+ "go.wit.com/lib/gadgets"
+ "go.wit.com/lib/gui/repolist"
+ "go.wit.com/log"
+)
+
+func makeTempView() *repoWindow {
+ r := new(repoWindow)
+ r.win = gadgets.RawBasicWindow("unmerged repositories")
+ r.win.Make()
+
+ r.box = r.win.Box().NewBox("bw vbox", false)
+ r.win.Custom = func() {
+ log.Warn("GOT HERE: makeTempView() close")
+ log.Warn("GOT HERE: makeTempView() close")
+ log.Warn("Should I do something special here?")
+ }
+
+ // reposbox.SetExpand(false)
+ group1 := r.box.NewGroup("Run on all repos:")
+
+ hbox := group1.Box()
+ // hbox.Horizontal()
+ hbox.Vertical()
+
+ box2 := hbox.Box().Vertical()
+ box2.NewButton("reload values", func() {
+ // gowit.DumpVersions(me.repos.View)
+ })
+
+ r.View = repolist.TempWindowView(r.box)
+ r.Show()
+ return r
+}