diff options
Diffstat (limited to 'configfile.go')
| -rw-r--r-- | configfile.go | 44 |
1 files changed, 27 insertions, 17 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 } |
