diff options
Diffstat (limited to 'doVerifyNamespace.go')
| -rw-r--r-- | doVerifyNamespace.go | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/doVerifyNamespace.go b/doVerifyNamespace.go new file mode 100644 index 0000000..b3a6820 --- /dev/null +++ b/doVerifyNamespace.go @@ -0,0 +1,65 @@ +// Copyright 2017-2025 WIT.COM Inc. All rights reserved. +// Use of this source code is governed by the GPL 3.0 + +package main + +import ( + "errors" + "path/filepath" + + "go.wit.com/lib/env" + "go.wit.com/lib/protobuf/gitpb" + "go.wit.com/log" +) + +func cleanNamespace(r *gitpb.Repo) string { + // check for GO repos + gowork := env.Get("gopath") + // todo: detect if using go.work file + newpath, err := filepath.Rel(gowork, r.FullPath) + // log.Info("cleanNamespace()", newpath, gowork, "is gowork. fullpath:", r.FullPath) + if err == nil { + // log.Info("cleanNamespace returned", newpath) + // relative path to gosrc or gowork is the namespace + return newpath + } + log.Info("cleanNamespace got err", newpath, err) + // check for other stuff. use the URLs + return "" +} + +// checks to see if the r.Namespace seems right +func doVerifyNamespace() (string, error) { + var s string = "doVerifyNamespace()" + var err error + var counter int + for r := range me.forge.Repos.IterAll() { + newpath := cleanNamespace(r) + if newpath == "" { + // log.Info("didn't work", r.Namespace, "to", newpath) + // didn't work + } else if newpath == r.Namespace { + // already good namespace. + continue + } else if newpath != r.Namespace { + counter += 1 + log.Info("Changed", r.FullPath, "to", newpath) + r.Namespace = newpath + continue + } + counter += 1 + log.Info("cleanNamespace() didn't match", r.Namespace) + } + if counter != 0 { + err = errors.New(log.Sprintf("%d namespaces were invalid", counter)) + } + + if env.True("DryRun") { + return s, err + } + if counter != 0 { + me.forge.Repos.SaveVerbose() + } + + return s, err +} |
