summaryrefslogtreecommitdiff
path: root/doList.go
diff options
context:
space:
mode:
Diffstat (limited to 'doList.go')
-rw-r--r--doList.go142
1 files changed, 141 insertions, 1 deletions
diff --git a/doList.go b/doList.go
index 7610d13..350d15d 100644
--- a/doList.go
+++ b/doList.go
@@ -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)
+ }
+ }
+}
+*/