summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configfile.go44
-rw-r--r--doList.go99
-rw-r--r--doMerge.go9
-rw-r--r--main.go4
4 files changed, 39 insertions, 117 deletions
diff --git a/configfile.go b/configfile.go
index 51125c1..f2f39af 100644
--- a/configfile.go
+++ b/configfile.go
@@ -6,43 +6,53 @@ import (
"go.wit.com/lib/protobuf/forgepb"
"go.wit.com/log"
+ "google.golang.org/protobuf/proto"
)
-func savePatchsets() error {
+func loadConfigfile() error {
+ me.all = forgepb.NewPatchsets()
+
filename := filepath.Join(LIBDIR, "all-patches.pb")
- regfile, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666)
+
+ data, err := os.ReadFile(filename)
if err != nil {
- log.Info("filename open error:", filename, err)
- // fmt.Fprintln(w, "filename open error:", filename, err)
return err
}
- defer regfile.Close()
- data, err := me.all.Marshal()
+ err = me.all.Unmarshal(data)
if err != nil {
- log.Infof("savePatchset() proto.Marshal() error %v\n", err)
+ log.Infof("loadConfigfile() proto.Marshal() error %v\n", err)
return err
}
- log.Infof("savePatchset() proto.Unmarshal() try to send len(msg)=%d back to the client forge\n", len(data))
- regfile.Write(data)
+ log.Infof("loadConfigfile() worked ok %d\n", me.all.Len())
return nil
}
-func loadConfigfile() error {
- me.all = forgepb.NewPatchsets()
-
+func savePatchsets() error {
filename := filepath.Join(LIBDIR, "all-patches.pb")
-
- data, err := os.ReadFile(filename)
+ regfile, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666)
if err != nil {
+ log.Info("filename open error:", filename, err)
+ // fmt.Fprintln(w, "filename open error:", filename, err)
return err
}
+ defer regfile.Close()
- err = me.all.Unmarshal(data)
+ log.Info("GOT HERE")
+ newpb := proto.Clone(me.all).(*forgepb.Patchsets)
+ if newpb == nil {
+ for pset := range me.all.IterAll() {
+ showPatchsets(pset)
+ }
+ return log.Errorf("Clone failed!")
+ }
+
+ data, err := newpb.Marshal()
if err != nil {
- log.Infof("loadConfigfile() savePatchset() proto.Marshal() error %v\n", err)
+ log.Infof("savePatchset() proto.Marshal() error %v\n", err)
return err
}
- log.Infof("loadConfigfile() worked ok %d\n", me.all.Len())
+ log.Infof("savePatchset() worked (%d) bytes\n", len(data))
+ regfile.Write(data)
return nil
}
diff --git a/doList.go b/doList.go
index 350d15d..3c8b488 100644
--- a/doList.go
+++ b/doList.go
@@ -10,28 +10,10 @@ import (
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
- }
+ if err := loadConfigfile(); err != nil {
+ badExit(err)
+ }
- return nil
- })
- */
for pset := range me.all.IterAll() {
showPatchsets(pset)
}
@@ -57,49 +39,6 @@ func showPatchsets(pb *forgepb.Patchset) error {
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)
@@ -116,35 +55,3 @@ func findPatch(newpatch *forgepb.Patch) bool {
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)
- }
- }
-}
-*/
diff --git a/doMerge.go b/doMerge.go
index f049c5c..784b213 100644
--- a/doMerge.go
+++ b/doMerge.go
@@ -12,14 +12,17 @@ import (
func doMerge() error {
if err := loadConfigfile(); err != nil {
- badExit(err)
+ return err
}
mergePatchsets()
for pset := range me.all.IterAll() {
showPatchsets(pset)
}
- // savePatchsets()
+ if err := savePatchsets(); err != nil {
+ log.Warn("savePatchsets() failed", err)
+ return err
+ }
return nil
}
@@ -59,7 +62,7 @@ func addPatchset(filename string, pb *forgepb.Patchset) {
var newpb *forgepb.Patchset
newpb = proto.Clone(pb).(*forgepb.Patchset)
if newpb != nil {
- me.all.Append(newpb)
+ me.all.Patchsets = append(me.all.Patchsets, newpb)
}
}
}
diff --git a/main.go b/main.go
index 4da231a..893c20d 100644
--- a/main.go
+++ b/main.go
@@ -53,7 +53,9 @@ func main() {
}
if argv.Merge != nil {
- doMerge()
+ if err := doMerge(); err != nil {
+ badExit(err)
+ }
okExit("")
}