summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-11-02 08:58:39 -0600
committerJeff Carr <[email protected]>2025-11-02 08:58:39 -0600
commit76324854b6201d102257e7ee29da744445e05445 (patch)
tree721d04c9e16a143ba392bd897ba0d3b8433bb436
parent6934952fd47fe1fe5d87d6c2ef89167d69916a8e (diff)
move this heredevel
-rw-r--r--versionCheck.go63
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
+}