diff options
Diffstat (limited to 'doList.go')
| -rw-r--r-- | doList.go | 142 |
1 files changed, 141 insertions, 1 deletions
@@ -1,10 +1,150 @@ package main import ( + "fmt" + + "go.wit.com/lib/protobuf/forgepb" "go.wit.com/log" ) -func doList() any { +func doList() error { log.Info("do list here") + + me.all = forgepb.NewPatchsets() + + /* + err := filepath.WalkDir("/var/lib/forged/patchset", func(path string, d os.DirEntry, err error) error { + if err != nil { + // Handle possible errors, like permission issues + fmt.Fprintf(os.Stderr, "error accessing path %q: %v\n", path, err) + return err + } + + if d.IsDir() { + // log.Info("path is dir", path) + return nil + } else { + _, fname := filepath.Split(path) + log.Info("found", fname, path) + return nil + } + + return nil + }) + */ + for pset := range me.all.IterAll() { + showPatchsets(pset) + } return nil } + +func showPatchsets(pb *forgepb.Patchset) error { + author := "Author: " + pb.GitAuthorName + author += " <" + pb.GitAuthorEmail + ">" + + // author := "Author: " + os.Getenv("GIT_AUTHOR_NAME") + // author += " <" + os.Getenv("GIT_AUTHOR_EMAIL") + ">" + fmt.Println(pb.Name, pb.Comment, author) + for i, patches := range pb.Patches.Patches { + log.Info("\tnew patches:", i, patches.CommitHash, patches.Namespace) + } + /* + for patch := range pb.IterAll() { + comment := cleanSubject(patch.Comment) + log.Info("\tnew patch:", patch.NewHash, "commithash:", patch.CommitHash, patch.Namespace, comment) + } + */ + return nil +} + +/* +// adds submitted patches not specifically assigned to a patchset +// to the generic patchset called "forge auto commit" +func addRandomPatch(patch *forgepb.Patch) { + for pset := range me.all.IterAll() { + if pset.Name == "forge auto commit" { + newpb := proto.Clone(patch).(*forgepb.Patch) + if newpb != nil { + pset.Patches.Append(newpb) + } + } + } + log.Warn("patchset.Name == 'forge auto commit' could not be found so the patch in", patch.Namespace, "could not be added") +} + +func addPatchset(filename string, pb *forgepb.Patchset) { + if pb.Name == "forge auto commit" { + author := "Author: " + pb.GitAuthorName + author += " <" + pb.GitAuthorEmail + ">" + + // author := "Author: " + os.Getenv("GIT_AUTHOR_NAME") + // author += " <" + os.Getenv("GIT_AUTHOR_EMAIL") + ">" + fmt.Println(filename, pb.Name, pb.Comment, author) + for _, patch := range pb.Patches.Patches { + // log.Info("\tnew patch:", i, patch.CommitHash, patch.Namespace) + if findPatch(patch) { + // log.Info("\talready found!!!!!!!", pset.Uuid, patch.Namespace) + } else { + log.Info("\tnew patch:", filename, pb.Name, pb.Comment, author) + } + } + // add each of the patches to the general pool + } else { + // Clone() this protobuf into me.all + var newpb *forgepb.Patchset + newpb = proto.Clone(pb).(*forgepb.Patchset) + if newpb != nil { + me.all.Append(newpb) + } + } +} +*/ + +// returns true if the patch already exists in the protobuf +func findPatch(newpatch *forgepb.Patch) bool { + // log.Info("\tlook for patch:", newpatch.CommitHash, newpatch.Namespace) + + for pset := range me.all.IterAll() { + for _, patch := range pset.Patches.Patches { + if patch.CommitHash == newpatch.CommitHash { + // log.Info("\tfound pset!!!!!!", pset.Uuid, patch.Namespace) + return true + } + + } + } + + return false +} + +/* +func mergePatchsets() { + dirname := filepath.Join(LIBDIR, "patchset/") + // Open the directory + entries, err := os.ReadDir(dirname) + if err != nil { + fmt.Printf("Error reading directory: %v\n", err) + return + } + + // Iterate through the directory entries + for _, entry := range entries { + // Check if the entry is a file and matches the *.pb pattern + if !entry.IsDir() && filepath.Ext(entry.Name()) == ".pb" { + bytes, err := os.ReadFile(filepath.Join(dirname, entry.Name())) + if err != nil { + fmt.Println(entry.Name(), err) + continue + } + var p *forgepb.Patchset + p = new(forgepb.Patchset) + err = p.Unmarshal(bytes) + if err != nil { + fmt.Println(entry.Name(), err) + continue + } + addPatchset(entry.Name(), p) + } + } +} +*/ |
