summaryrefslogtreecommitdiff
path: root/configfile.go
blob: f2f39afa4baee989c0652022efdb6395b9cc2278 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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
}