summaryrefslogtreecommitdiff
path: root/save.go
diff options
context:
space:
mode:
Diffstat (limited to 'save.go')
-rw-r--r--save.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/save.go b/save.go
index 2d64d68..43e4044 100644
--- a/save.go
+++ b/save.go
@@ -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 {