diff options
Diffstat (limited to 'load.go')
| -rw-r--r-- | load.go | 35 |
1 files changed, 30 insertions, 5 deletions
@@ -73,19 +73,44 @@ func ConfigLoad(pb proto.Message, argname string, protoname string) error { func Load(pb proto.Message) error { fullname, err := GetFilename(pb) if err != nil { - log.Info("filename =", fullname, err) + log.Info("'Filename' is not in: =", fullname, err) return err } + ver, err := GetString(pb, "version") + if err != nil { + log.Info("'Version' is not in: =", fullname, err) + return err + } + var worked bool if strings.HasSuffix(fullname, ".text") { - return loadTEXT(pb, fullname) + if err := loadTEXT(pb, fullname); err != nil { + return err + } + worked = true } if strings.HasSuffix(fullname, ".json") { - return loadJSON(pb, fullname) + if err := loadJSON(pb, fullname); err != nil { + return err + } + worked = true } if strings.HasSuffix(fullname, ".pb") { - return loadPB(pb, fullname) + if err := loadPB(pb, fullname); err != nil { + return err + } + worked = true } - return log.Errorf("unknown filetype %s", fullname) + if !worked { + return log.Errorf("unknown filetype %s", fullname) + } + newver, _ := GetString(pb, "version") + if ver != newver { + log.Printf("VERSION '%s' != '%s'\n", ver, newver) + log.Info("Your protobuf file is old and can not be loaded") + log.Info("You must delete or convert the file", fullname) + panic("protobuf version mismatch") + } + return nil } func LoadFile(pb proto.Message, fullname string) error { |
