forged/configfile.go

59 lines
1.2 KiB
Go

package main
import (
"os"
"path/filepath"
"go.wit.com/lib/protobuf/forgepb"
"go.wit.com/log"
"google.golang.org/protobuf/proto"
)
func loadConfigfile() 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("loadConfigfile() proto.Marshal() error %v\n", err)
return err
}
log.Infof("loadConfigfile() 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("filename open error:", filename, err)
// fmt.Fprintln(w, "filename open error:", filename, err)
return err
}
defer regfile.Close()
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("savePatchset() proto.Marshal() error %v\n", err)
return err
}
log.Infof("savePatchset() worked (%d) bytes\n", len(data))
regfile.Write(data)
return nil
}