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 +}  | 
