maybe someday this will work

This commit is contained in:
Jeff Carr 2024-12-13 02:21:39 -06:00
parent 6e9ff62fba
commit 0de08f72ef
2 changed files with 45 additions and 16 deletions

View File

@ -97,11 +97,12 @@ func findNext() bool {
return false
}
// tries to fix the go.mod and go.sum files
func fixGodeps(check *gitpb.Repo) bool {
var good bool = true
func runGoClean(check *gitpb.Repo) bool {
// check if the package dependancies changed, if so, re-publish
check.GoDeps = nil
cmd := []string{"go-clean", "--auto"}
log.Info("Running", cmd, "in", check.GoPath)
result := check.RunRealtime(cmd)
if result.Error != nil {
log.Info(cmd, "failed with", result.Error, check.GoPath)
@ -111,16 +112,24 @@ func fixGodeps(check *gitpb.Repo) bool {
log.Info(cmd, "failed with", result.Exit, check.GoPath)
return false
}
check.GoDeps = nil
if ok, err := check.ParseGoSum(); !ok {
log.Info("ParseGoSum() failed", err)
return false
}
return true
}
// tries to fix the go.mod and go.sum files
func fixGodeps(check *gitpb.Repo) bool {
var good bool = true
if !runGoClean(check) {
return false
}
// skip primative ones
if ok, _ := check.IsPrimitive(); ok {
log.Info("fixGoDeps() skipping primitive", check.GoPath)
return true
}
if ok, err := check.ParseGoSum(); !ok {
log.Info("ParseGoSum() failed", err)
return false
}
log.Printf("current repo %s go dependancy count: %d", check.GetGoPath(), check.GoDepsLen())
deps := check.GoDeps.SortByGoPath()
for deps.Scan() {

View File

@ -29,15 +29,31 @@ func makePrepareRelease() {
check.SetTargetVersion(curver)
}
// on startup, run fixGoDeps() on every go.sum that didn't match
if argv.Fix {
all := me.forge.Repos.SortByGoPath()
for all.Scan() {
check := all.Next()
// run go-clean on everything not readonly
all = me.forge.Repos.SortByGoPath()
for all.Scan() {
check := all.Next()
if !me.forge.FinalGoDepsCheckOk(check) {
fixGodeps(check)
}
if me.forge.Config.IsReadOnly(check.GoPath) {
// can't release readonly repos
continue
}
if ok, err := check.IsPrimitive(); !ok {
log.Info("something wrong with", check.GoPath, err)
// no go.sum file for these
continue
}
if check.Exists("go.sum") {
// probably already ran
continue
}
if !runGoClean(check) {
log.Info("go-clean FAILED. THIS IS BAD.", check.GoPath)
log.Info("go-clean FAILED. THIS IS BAD.", check.GoPath)
log.Info("go-clean FAILED. THIS IS BAD.", check.GoPath)
}
}
@ -45,6 +61,10 @@ func makePrepareRelease() {
for all.Scan() {
check := all.Next()
if me.forge.Config.IsReadOnly(check.GoPath) {
// can't release readonly repos
continue
}
// if master != lastTag, always increment
master := check.GetMasterVersion()
lastTag := check.GetLastTag()