package main import ( "fmt" "os" "go.wit.com/lib/protobuf/gitpb" "go.wit.com/log" ) func list() { if argv.ListConf { me.forge.ConfigPrintTable() os.Exit(0) } if argv.List { repos := me.forge.Repos.SortByGoPath() for repos.Scan() { repo := repos.Next() var end string if repo.CheckDirty() { end += "(dirty) " } 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) } if argv.GetMine { log.Printf("get mine %s", me.forge.GetGoSrc()) os.Exit(0) } if argv.GetFav { log.Printf("get favorites") 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 }