summaryrefslogtreecommitdiff
path: root/list.go
diff options
context:
space:
mode:
Diffstat (limited to 'list.go')
-rw-r--r--list.go110
1 files changed, 95 insertions, 15 deletions
diff --git a/list.go b/list.go
index 646db57..e475d95 100644
--- a/list.go
+++ b/list.go
@@ -4,6 +4,7 @@ import (
"fmt"
"os"
+ "go.wit.com/lib/protobuf/gitpb"
"go.wit.com/log"
)
@@ -17,25 +18,24 @@ func list() {
repos := me.forge.Repos.SortByGoPath()
for repos.Scan() {
repo := repos.Next()
- var rtype string
- if !repo.IsValid() {
- rtype = "rm?"
- continue
- } else {
- rtype = repo.RepoType()
- }
- if me.forge.IsReadOnly(repo.GetGoPath()) {
- continue
- }
var end string
if repo.CheckDirty() {
end += "(dirty) "
}
- mver := repo.GetMasterVersion()
- dver := repo.GetDevelVersion()
- uver := repo.GetUserVersion()
- s := fmt.Sprintf("%-50s %-8s %-10s %-10s %-10s", repo.GetGoPath(), rtype, mver, dver, uver)
- log.Info(s, end)
+ s := make(map[string]string)
+ if !verify(repo, s) {
+ log.Info("going to delete", repo.GoPath)
+ if argv.Real {
+ me.forge.Repos.DeleteByGoPath(repo.GetGoPath())
+ me.forge.Repos.ConfigSave()
+ } else {
+ log.Info("need argv --real to delete", repo.GoPath)
+ }
+ os.Exit(0)
+ }
+ start := fmt.Sprintf("%-50s %-8s %-10s %-10s %-10s %-10s", s["gopath"], s["rtype"], s["mver"], s["dver"], s["uver"], s["cver"])
+ end += fmt.Sprintf("(%s,%s,%s,%s) ", s["mname"], s["dname"], s["uname"], s["cname"])
+ log.Info(start, end)
}
os.Exit(0)
}
@@ -50,3 +50,83 @@ func list() {
os.Exit(0)
}
}
+
+func whichOne(repo *gitpb.Repo, a map[string]any, hmm string) any {
+ return nil
+}
+
+func updateRepo(repo *gitpb.Repo, a map[string]any) bool {
+ return false
+}
+
+func Delete(repo *gitpb.Repo, s map[string]string) bool {
+ if repo.Published == nil {
+ log.Info("published is nil", repo.Published)
+ } else {
+ log.Info("published len", repo.Published.Len())
+ }
+
+ // add a new one here
+ newr := gitpb.Repo{
+ FullPath: repo.FullPath,
+ GoPath: repo.GoPath,
+ URL: repo.URL,
+ Tags: repo.Tags,
+ LastPull: repo.LastPull,
+ MasterBranchName: repo.MasterBranchName,
+ DevelBranchName: repo.DevelBranchName,
+ UserBranchName: repo.UserBranchName,
+ GoLibrary: repo.GoLibrary,
+ GoBinary: repo.GoBinary,
+ GoPrimitive: repo.GoPrimitive,
+ GoPlugin: repo.GoPlugin,
+ GoDeps: repo.GoDeps,
+ LastGoDep: repo.LastGoDep,
+ Dirty: repo.Dirty,
+ Published: repo.Published,
+ TargetVersion: repo.TargetVersion,
+ ReadOnly: repo.ReadOnly,
+ GoProtobuf: repo.GoProtobuf,
+ }
+ if argv.Real {
+ me.forge.Repos.AppendUniqueGoPath(&newr)
+ }
+ return true
+}
+
+func verify(repo *gitpb.Repo, s map[string]string) bool {
+ if ! repo.IsValid() {
+ return false
+ }
+ s["gopath"] = repo.GetGoPath()
+ s["rtype"] = repo.RepoType()
+
+ s["mname"] = repo.GetMasterBranchName()
+ if s["mname"] == "" {
+ log.Info("verify() no master branch name")
+ return false
+ }
+ // only verify the master branch name with read-only repos
+ if me.forge.IsReadOnly(repo.GoPath) {
+ return true
+ }
+
+ s["dname"] = repo.GetDevelBranchName()
+ if s["dname"] == "" {
+ log.Info("verify() no devel branch name")
+ return false
+ }
+ s["uname"] = repo.GetUserBranchName()
+ if s["uname"] == "" {
+ log.Info("verify() no user branch name")
+ return false
+ }
+ s["cname"] = repo.GetCurrentBranchName()
+
+ s["mver"] = repo.GetMasterVersion()
+ s["dver"] = repo.GetDevelVersion()
+ s["uver"] = repo.GetUserVersion()
+ s["cver"] = repo.GetCurrentBranchVersion()
+
+ return true
+}