diff options
| author | Jeff Carr <[email protected]> | 2025-11-02 08:58:39 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-11-02 08:58:39 -0600 |
| commit | 76324854b6201d102257e7ee29da744445e05445 (patch) | |
| tree | 721d04c9e16a143ba392bd897ba0d3b8433bb436 | |
| parent | 6934952fd47fe1fe5d87d6c2ef89167d69916a8e (diff) | |
move this heredevel
| -rw-r--r-- | versionCheck.go | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/versionCheck.go b/versionCheck.go new file mode 100644 index 0000000..7b2ff77 --- /dev/null +++ b/versionCheck.go @@ -0,0 +1,63 @@ +package filepb + +import ( + "errors" + "fmt" + + "google.golang.org/protobuf/proto" +) + +// verify 'version' for .pb files +// application should die if they don't match +// returns (newVersion, oldVersion, error) +func VersionCheck(pb proto.Message) (string, string, error) { + fullname, err := GetFilename(pb) + if err != nil { + return "", "", err + } + return VersionCheckFile(pb, fullname) +} + +// verify 'version' for .pb files +// application should die if they don't match +// returns (newVersion, oldVersion, error) +func VersionCheckFile(pb proto.Message, filename string) (string, string, error) { + var newVersion string + var newUuid string + var err error + + newVersion, err = GetString(pb, "version") + if err != nil { + fmt.Printf("VersionCheckFile() filename (%s)\n", filename) + fmt.Printf("VersionCheckFile() err (%v)\n", err) + return newVersion, "", err + } + + newUuid, err = GetString(pb, "uuid") + if err != nil { + fmt.Printf("VersionCheckFile() filename (%s)\n", filename) + fmt.Printf("VersionCheckFile() err (%v)\n", err) + return newUuid, "", err + } + + oldVersion, oldUuid, err := IdentifyPB(filename) + if err != nil { + fmt.Printf("VersionCheckFile() filename (%s)\n", filename) + fmt.Printf("VersionCheckFile() err (%v)\n", err) + return newVersion, oldVersion, err + } + + if newVersion != oldVersion { + fmt.Printf("VersionCheckFile() filename (%s)\n", filename) + fmt.Printf("VersionCheckFile() Version (%s) ne (%s)\n", newVersion, oldVersion) + return newVersion, oldVersion, errors.New("version mismatch") + } + + if newUuid != oldUuid { + fmt.Printf("VersionCheckFile() filename (%s)\n", filename) + fmt.Printf("VersionCheckFile() UUID (%s) ne (%s)\n", newUuid, oldUuid) + return newUuid, oldUuid, errors.New("UUID mismatch") + } + + return newVersion, oldVersion, nil +} |
