package main import ( "os" "path/filepath" "go.wit.com/lib/protobuf/forgepb" "go.wit.com/log" "google.golang.org/protobuf/proto" ) func LoadPatchsets() error { me.all = forgepb.NewPatchsets() filename := filepath.Join(LIBDIR, "all-patches.pb") data, err := os.ReadFile(filename) if err != nil { return err } err = me.all.Unmarshal(data) if err != nil { log.Infof("LoadPatchsets() proto.Marshal() error %v\n", err) return err } log.Infof("LoadPatchsets() worked ok %d\n", me.all.Len()) return nil } func SavePatchsets() error { filename := filepath.Join(LIBDIR, "all-patches.pb") regfile, err := os.OpenFile(filename, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0666) if err != nil { log.Info("SavePatchsets() filename open error:", filename, err) // fmt.Fprintln(w, "filename open error:", filename, err) return err } defer regfile.Close() newpb := proto.Clone(me.all).(*forgepb.Patchsets) if newpb == nil { for pset := range me.all.IterAll() { showPatchsets(pset) } return log.Errorf("SavePatchsets() Clone failed!") } data, err := newpb.Marshal() if err != nil { log.Infof("SavePatchset() proto.Marshal() error %v\n", err) return err } log.Infof("SavePatchset() worked (%d) bytes\n", len(data)) regfile.Write(data) return nil }