diff options
Diffstat (limited to 'save.go')
| -rw-r--r-- | save.go | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -19,6 +19,29 @@ func ConfigSave(pb proto.Message) error { return saveTEXT(pb, "") } +func SavePB(pb proto.Message, fullname string) error { + if !strings.HasSuffix(fullname, ".pb") { + // todo: append .text here? + return log.Errorf("%s needs to end in '.pb'", fullname) + } + + dir, name := filepath.Split(fullname) + if name == "" { + return fmt.Errorf("filename was blank") + } + if err := os.MkdirAll(dir, os.ModePerm); err != nil { + return err + } + + data, err := proto.Marshal(pb) + if err != nil { + return err + } + + log.Infof("ConfigSave() filename=%s %d\n", fullname, len(data)) + return configWrite(fullname, data) +} + func ConfigSaveWithHeader(pb proto.Message, header string) error { var final error if err := saveTEXT(pb, header); err != nil { |
