summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-01-24 16:24:58 -0600
committerJeff Carr <[email protected]>2024-01-24 16:24:58 -0600
commit21546ce2c002e1550754578b1083f0a9c6d0a77d (patch)
tree57d3795e0fc094a26cf9c463ff97ac5d7a63d30a
parent732ac4b1e5f7b23873ec7a09bfa4cffcc501a8a8 (diff)
more attempts to release versions
Signed-off-by: Jeff Carr <[email protected]>
-rw-r--r--draw.go34
-rw-r--r--git.go8
-rw-r--r--gitConfig.go85
-rw-r--r--go.mod2
-rw-r--r--go.sum4
-rw-r--r--unix.go22
6 files changed, 132 insertions, 23 deletions
diff --git a/draw.go b/draw.go
index 20081ec..2ac0963 100644
--- a/draw.go
+++ b/draw.go
@@ -108,8 +108,29 @@ func (rs *RepoStatus) drawGitBranches() {
}
})
- newgrid.NewButton("check go.sum", func() {
- rs.CheckGoSum()
+ newgrid.NewButton("CheckDirty()", func() {
+ if rs.CheckDirty() {
+ log.Log(WARN, "is dirty")
+ } else {
+ log.Log(WARN, "is not dirty")
+ }
+ })
+ newgrid.NewButton("CheckGoSum()", func() {
+ if rs.CheckGoSum() {
+ log.Log(WARN, "CheckGoSum() is ok")
+ } else {
+ log.Log(WARN, "CheckGoSum() is not ok")
+ }
+ })
+ newgrid.NewButton("CheckPrimativeGoMod()", func() {
+ if rs.CheckPrimativeGoMod() {
+ log.Log(WARN, "is primative")
+ } else {
+ log.Log(WARN, "is not primative")
+ }
+ })
+ newgrid.NewButton("MakeRedomod()", func() {
+ rs.MakeRedomod()
})
}
@@ -222,7 +243,6 @@ func (rs *RepoStatus) drawGitCommands() {
newgrid.Pad()
}
-
func (rs *RepoStatus) SetVersion(a, b, c string, reason string) {
rs.major.SetText(a)
rs.minor.SetText(b)
@@ -255,9 +275,10 @@ func (rs *RepoStatus) setTag() bool {
}
if newa > olda {
log.Log(INFO, "new version ok", newver, "vs old version", lasttag)
+ rs.minor.SetText("0")
+ rs.revision.SetText("0")
+ newver := strconv.Itoa(newa) + ".0.0"
rs.newversion.SetLabel(newver)
- rs.minor.SetText("")
- rs.revision.SetText("")
return true
}
@@ -271,8 +292,9 @@ func (rs *RepoStatus) setTag() bool {
if newb > oldb {
log.Log(INFO, "new version ok", newver, "vs old version", lasttag)
+ newver = strconv.Itoa(newa) + "." + strconv.Itoa(newb) + ".0"
rs.newversion.SetLabel(newver)
- rs.revision.SetText("")
+ rs.revision.SetText("0")
return true
}
diff --git a/git.go b/git.go
index cebdbd2..d0acd78 100644
--- a/git.go
+++ b/git.go
@@ -95,6 +95,7 @@ func (rs *RepoStatus) CheckDirty() bool {
err, b, out := RunCmd(path, cmd)
if err != nil {
log.Warn("CheckDirty() b =", b)
+ log.Warn("CheckDirty() cmd =", cmd)
log.Warn("CheckDirty() path =", path)
log.Warn("CheckDirty() out =", out)
log.Warn("CheckDirty() err =", err)
@@ -108,7 +109,12 @@ func (rs *RepoStatus) CheckDirty() bool {
rs.dirtyLabel.SetValue("no")
return false
}
- log.Log(INFO, "CheckDirty() true", rs.realPath.String())
+ log.Log(WARN, "CheckDirty() true", rs.realPath.String())
+ log.Log(WARN, "CheckDirty() cmd =", cmd)
+ log.Log(WARN, "CheckDirty() b =", b)
+ log.Log(WARN, "CheckDirty() path =", path)
+ log.Log(WARN, "CheckDirty() out =", out)
+ log.Log(WARN, "CheckDirty() err =", err)
rs.dirtyLabel.SetValue("dirty")
return true
diff --git a/gitConfig.go b/gitConfig.go
index f829c61..183479d 100644
--- a/gitConfig.go
+++ b/gitConfig.go
@@ -185,9 +185,11 @@ func (rs *RepoStatus) readGitConfig() error {
return nil
}
-// readGoMod reads and parses the go.sum file (TODO: do the go.mod file)
-func (rs *RepoStatus) ReadGoMod() bool {
- tmp := filepath.Join(rs.realPath.String(), "go.sum")
+// this checks to see if the repo is truly not dependent on _anything_ else
+// like spew or lib/widget
+func (rs *RepoStatus) CheckPrimativeGoMod() bool {
+ log.Log(WARN, "CheckPrimativeGoMod()", rs.realPath.String())
+ tmp := filepath.Join(rs.realPath.String(), "go.mod")
gomod, err := os.Open(tmp)
if err != nil {
log.Log(WARN, "missing go.mod", rs.realPath.String())
@@ -196,7 +198,32 @@ func (rs *RepoStatus) ReadGoMod() bool {
}
defer gomod.Close()
- tmp = filepath.Join(rs.realPath.String(), "go.sum")
+ scanner := bufio.NewScanner(gomod)
+ for scanner.Scan() {
+ line := strings.TrimSpace(scanner.Text())
+
+ parts := strings.Split(line, " ")
+ log.Log(WARN, " gomod:", parts)
+ if len(parts) >= 1 {
+ log.Log(WARN, " gomod: part[0] =", parts[0])
+ if parts[0] == "require" {
+ log.Log(WARN, " should return false here")
+ return false
+ }
+
+ }
+ }
+ return true
+}
+
+// readGoMod reads and parses the go.sum file (TODO: do the go.mod file)
+func (rs *RepoStatus) ReadGoMod() bool {
+ if rs.CheckPrimativeGoMod() {
+ log.Info("PRIMATIVE repo:", rs.String())
+ return true
+ }
+
+ tmp := filepath.Join(rs.realPath.String(), "go.sum")
gosum, err := os.Open(tmp)
if err != nil {
log.Log(WARN, "missing go.sum", rs.realPath.String())
@@ -257,14 +284,14 @@ func ScanGoSrc() {
func ScanGitConfig() {
/*
- for i, path := range listGitDirectories() {
- filename := filepath.Join(path, ".git/config")
- _, err := readGitConfig(filename)
- if err != nil {
- log.Log(WARN, "repo =", i, path)
- log.Log(WARN, "Error reading .git/config:", err)
+ for i, path := range listGitDirectories() {
+ filename := filepath.Join(path, ".git/config")
+ _, err := readGitConfig(filename)
+ if err != nil {
+ log.Log(WARN, "repo =", i, path)
+ log.Log(WARN, "Error reading .git/config:", err)
+ }
}
- }
*/
}
@@ -301,8 +328,8 @@ func (rs *RepoStatus) CheckGoSum() bool {
username := newrs.userWorkingName.String()
userhash, _ := newrs.gitConfig.hashes[username]
userversion, _ := newrs.gitConfig.versions[userhash]
- log.Log(WARN, " username :" + username, userhash)
- log.Log(WARN, " username :" + username, userversion)
+ log.Log(WARN, " username :"+username, userhash)
+ log.Log(WARN, " username :"+username, userversion)
if version == userversion {
log.Log(WARN, " USER VERSIONS MATCH", version, userversion)
} else {
@@ -311,12 +338,44 @@ func (rs *RepoStatus) CheckGoSum() bool {
}
} else {
log.Log(WARN, " NOT FOUND", depname)
+ log.Log(WARN, " go get -v", depname)
+ rs.RunCmd([]string{"go", "get", "-v", depname})
return false
}
}
return true
}
+func (rs *RepoStatus) MakeRedomod() {
+ var err error
+ var b bool
+ var output string
+ var worked bool = true
+
+ os.Unsetenv("GO111MODULE")
+ path := rs.realPath.String()
+ err, b, output = RunCmd(path, []string{"rm", "-f", "go.mod", "go.sum"})
+ if err != nil {
+ worked = false
+ log.Log(WARN, "rm failed", err, b, output)
+ }
+ err, b, output = RunCmd(path, []string{"go", "mod", "init"})
+ if err != nil {
+ worked = false
+ log.Log(WARN, "go mod init failed", err, b, output)
+ }
+ err, b, output = RunCmd(path, []string{"go", "mod", "tidy"})
+ if err != nil {
+ worked = false
+ log.Log(WARN, "go mod tidy failed", err, b, output)
+ }
+ if worked {
+ log.Log(WARN, "MakeRedomod() worked", path)
+ } else {
+ log.Log(WARN, "MakeRedomod() failed", path)
+ }
+}
+
func (rs *RepoStatus) processBranch(branch string) {
fullpath := rs.realPath.String()
log.Log(WARN, " ", branch)
diff --git a/go.mod b/go.mod
index d86fd4e..a33f956 100644
--- a/go.mod
+++ b/go.mod
@@ -3,7 +3,7 @@ module go.wit.com/lib/gui/repostatus
go 1.21.4
require (
- go.wit.com/gui v0.12.20
+ go.wit.com/gui v0.13.11
go.wit.com/lib/gadgets v0.12.16
go.wit.com/log v0.5.6
go.wit.com/widget v1.1.6
diff --git a/go.sum b/go.sum
index 2a3d645..458a8de 100644
--- a/go.sum
+++ b/go.sum
@@ -4,8 +4,8 @@ go.wit.com/dev/alexflint/scalar v1.2.1 h1:loXOcbVnd+8YeJRLey+XXidecBiedMDO00zQ26
go.wit.com/dev/alexflint/scalar v1.2.1/go.mod h1:+rYsfxqdI2cwA8kJ7GCMwWbNJvfvWUurOCXLiwdTtSs=
go.wit.com/dev/davecgh/spew v1.1.4 h1:C9hj/rjlUpdK+E6aroyLjCbS5MFcyNUOuP1ICLWdNek=
go.wit.com/dev/davecgh/spew v1.1.4/go.mod h1:sihvWmnQ/09FWplnEmozt90CCVqBtGuPXM811tgfhFA=
-go.wit.com/gui v0.12.20 h1:mIc2DKGcpQjZdgtAj5qzkBrBDiteWfIaEpLyMnIBkh8=
-go.wit.com/gui v0.12.20/go.mod h1:v2VgnOL3dlZ13KclYeedZ1cd20nQdvwjyJTNKvFX3DA=
+go.wit.com/gui v0.13.11 h1:d74Ko/XFZYR25P/AZfCQaVO2CuGh1BSjdUp1wjktdDg=
+go.wit.com/gui v0.13.11/go.mod h1:v2VgnOL3dlZ13KclYeedZ1cd20nQdvwjyJTNKvFX3DA=
go.wit.com/lib/gadgets v0.12.16 h1:xHz8zZiTe8xiGvfWs3s9drYUbePTT/Te58u7WXHjx0s=
go.wit.com/lib/gadgets v0.12.16/go.mod h1:9779QoRZlk+G3/MCcX4Io1eH3HTLImE0AXdAMMdw+0U=
go.wit.com/log v0.5.6 h1:rDC3ju95zfEads4f1Zm+QMkqjZ39CsYAT/UmQQs7VP4=
diff --git a/unix.go b/unix.go
index b4f604f..a1030dc 100644
--- a/unix.go
+++ b/unix.go
@@ -10,6 +10,7 @@ import (
"path/filepath"
"regexp"
"strings"
+ "syscall"
"go.wit.com/log"
)
@@ -115,6 +116,17 @@ func splitVersion(version string) (a, b, c string) {
}
}
+func (rs *RepoStatus) RunCmd(parts []string) (error, string) {
+ path := rs.realPath.String()
+ err, _, output := RunCmd(path, parts)
+ if err != nil {
+ log.Log(WARN, "cmd:", parts)
+ log.Log(WARN, "ouptput:", output)
+ log.Log(WARN, "failed with error:", err)
+ }
+ return err, output
+}
+
// temp hack. fix this
func runCmd(path string, parts []string) (error, bool, string) {
return RunCmd(path, parts)
@@ -162,6 +174,16 @@ func RunCmd(workingpath string, parts []string) (error, bool, string) {
log.Warn("cmd exited with error", err)
// panic("fucknuts")
return err, false, string(output)
+
+ // The command failed (non-zero exit status)
+ if exitErr, ok := err.(*exec.ExitError); ok {
+ // Assert that it is an exec.ExitError and get the exit code
+ if status, ok := exitErr.Sys().(syscall.WaitStatus); ok {
+ log.Warn("Exit Status: %d\n", status.ExitStatus())
+ }
+ } else {
+ log.Warn("cmd.Run() failed with %s\n", err)
+ }
}
tmp := string(output)