diff options
Diffstat (limited to 'config.go')
| -rw-r--r-- | config.go | 40 |
1 files changed, 40 insertions, 0 deletions
@@ -60,6 +60,46 @@ func ConfigLoad() *Portmaps { return p } +func EventLoad() *Events { + pb := new(Events) + var fullname string + base, _ := filepath.Split(argv.Config) + fullname = filepath.Join(base, "events.pb") + + var data []byte + var err error + if data, err = loadFile(fullname); err != nil { + log.Warn("event file failed to load", err) + // something went wrong loading the file + return pb + } + + if data == nil { + return pb + } + if err = pb.Unmarshal(data); err != nil { + log.Warn("unmarshal failed on config file", err) + return pb + } + + log.Log(INFO, "gus.EventLoad() has", pb.Len(), "port mappings") + return pb +} + +func (e *Events) Save() { + var fullname string + base, _ := filepath.Split(argv.Config) + fullname = filepath.Join(base, "events.pb") + + data, err := e.Marshal() + if err != nil { + log.Info("proto.Marshal() failed", err) + return + } + log.Info("proto.Marshal() worked len", len(data)) + configWrite(fullname, data) +} + func loadFile(fullname string) ([]byte, error) { data, err := os.ReadFile(fullname) if errors.Is(err, os.ErrNotExist) { |
