diff options
| author | Jeff Carr <[email protected]> | 2025-09-22 16:34:38 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-09-22 16:34:38 -0500 |
| commit | 77f7f39c250b0b4e603df6c2e6cd9110e3a02021 (patch) | |
| tree | 13f761bf2f2d23d62cf380fdb593b33ca6a7a76b /load.go | |
| parent | 0e805acc675e374b54cad33ef63f282d46b621af (diff) | |
load and save PB() funcsv0.0.5
Diffstat (limited to 'load.go')
| -rw-r--r-- | load.go | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -53,6 +53,37 @@ func ConfigLoad(pb proto.Message, argname string, protoname string) error { return log.Errorf("could not load config file") } +func LoadPB(pb proto.Message, argname string, protoname string) (string, error) { + var fullname string + if strings.HasPrefix(argname, "/") { + fullname = filepath.Join(argname, protoname+".pb") + } else { + homeDir, err := os.UserHomeDir() + if err != nil { + log.Warn("ConfigLoad() UserHomeDir() err", err) + return "", err + } + + fullname = filepath.Join(homeDir, ".config", argname, protoname+".pb") + } + + data, err := loadFile(fullname) + if err != nil { + log.Warn("LoadPB()", fullname, err) + // set pb.Filename that was attempted + return fullname, err + } + + // Unmarshal() + if err = proto.Unmarshal(data, pb); err != nil { + log.Warn("LoadPB() file", fullname) + log.Warn("LoadPB() Unmarshal() err", err) + return fullname, err + } + + return fullname, nil +} + func loadTEXT(pb proto.Message, fullname string) error { var data []byte var err error |
