summaryrefslogtreecommitdiff
path: root/save.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-09-21 20:41:30 -0500
committerJeff Carr <[email protected]>2025-09-21 20:41:30 -0500
commit0e805acc675e374b54cad33ef63f282d46b621af (patch)
tree041c36609acc3b054350bec299245559d8ad64b0 /save.go
parent1dfac22abcf26235c8b21dd2e394f657e06ed556 (diff)
make the backup file .text.jsonv0.0.4
Diffstat (limited to 'save.go')
-rw-r--r--save.go71
1 files changed, 41 insertions, 30 deletions
diff --git a/save.go b/save.go
index 6231b3b..2d64d68 100644
--- a/save.go
+++ b/save.go
@@ -15,33 +15,66 @@ import (
var ErrProtoFilename error = log.Errorf("proto does not have Filename")
func ConfigSave(pb proto.Message) error {
+ // log.Infof("ConfigSave() filename=%s %d\n", fullname, len(s))
+ return saveTEXT(pb, "")
+}
+
+func ConfigSaveWithHeader(pb proto.Message, header string) error {
+ var final error
+ if err := saveTEXT(pb, header); err != nil {
+ final = err
+ }
+ if err := saveJSON(pb); err != nil {
+ final = err
+ }
+
+ /*
+ if strings.HasSuffix(fullname, ".text") {
+ fullname = strings.TrimSuffix(fullname, ".text")
+ fullname += ".json"
+ if err := configJSON(fullname, pb); err != nil {
+ final = err
+ }
+ }
+ */
+ return final
+}
+
+func saveTEXT(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)
+ if !strings.HasSuffix(fullname, ".text") {
+ // todo: append .text here?
+ return log.Errorf("not .text file: %s", fullname)
+ }
dir, name := filepath.Split(fullname)
if name == "" {
return fmt.Errorf("filename was blank")
}
- err := os.MkdirAll(dir, os.ModePerm)
- if err != nil {
+ if err := os.MkdirAll(dir, os.ModePerm); err != nil {
return err
}
+ s := prototext.Format(pb)
+
log.Infof("ConfigSave() filename=%s %d\n", fullname, len(s))
- return configWrite(fullname, []byte(s))
+ return configWrite(fullname, []byte(header+s))
}
-func ConfigSaveWithHeader(pb proto.Message, header string) error {
+func saveJSON(pb proto.Message) error {
// get pb.Filename if it is there in the .proto file
fullname, ok := GetFilename(pb)
if !ok {
return ErrProtoFilename
}
+ if !strings.HasSuffix(fullname, ".text") {
+ // todo: append .text here?
+ return log.Errorf("not .text file: %s", fullname)
+ }
dir, name := filepath.Split(fullname)
if name == "" {
@@ -51,37 +84,15 @@ func ConfigSaveWithHeader(pb proto.Message, header string) error {
return err
}
- var final error
- if err := configTEXT(fullname, pb, header); err != nil {
- final = err
- }
-
- if strings.HasSuffix(fullname, ".text") {
- fullname = strings.TrimSuffix(fullname, ".text")
- fullname += ".json"
- if err := configJSON(fullname, pb); err != nil {
- final = err
- }
- }
- return final
-}
-
-func configTEXT(fullname string, pb proto.Message, header string) error {
- s := prototext.Format(pb)
-
- log.Infof("ConfigSave() filename=%s %d\n", fullname, len(s))
- return configWrite(fullname, []byte(header+s))
-}
-
-func configJSON(fullname string, pb proto.Message) error {
data := protojson.Format(pb)
+ fullname += ".json"
+
log.Infof("ConfigSave() filename=%s %d\n", fullname, len(data))
return configWrite(fullname, []byte(data))
}
func configWrite(fullname string, data []byte) error {
-
cfgfile, err := os.OpenFile(fullname, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0644)
defer cfgfile.Close()
if err != nil {