diff options
| -rw-r--r-- | save.go | 23 |
1 files changed, 22 insertions, 1 deletions
@@ -19,7 +19,6 @@ func ConfigSave(pb proto.Message) error { return ErrProtoFilename } - // Unmarshal() s := prototext.Format(pb) dir, name := filepath.Split(fullname) @@ -35,6 +34,28 @@ func ConfigSave(pb proto.Message) error { return configWrite(fullname, []byte(s)) } +func ConfigSaveWithHeader(pb proto.Message, header string) error { + // get pb.Filename if it is there in the .proto file + fullname, ok := GetFilename(pb) + if !ok { + return ErrProtoFilename + } + + s := prototext.Format(pb) + + dir, name := filepath.Split(fullname) + if name == "" { + return fmt.Errorf("filename was blank") + } + err := os.MkdirAll(dir, os.ModePerm) + if err != nil { + return err + } + + log.Infof("ConfigSave() filename=%s %d\n", fullname, len(s)) + return configWrite(fullname, []byte(header+s)) +} + func configWrite(fullname string, data []byte) error { cfgfile, err := os.OpenFile(fullname, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644) |
