summaryrefslogtreecommitdiff
path: root/parseProtoFile.go
diff options
context:
space:
mode:
Diffstat (limited to 'parseProtoFile.go')
-rw-r--r--parseProtoFile.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/parseProtoFile.go b/parseProtoFile.go
new file mode 100644
index 0000000..682234d
--- /dev/null
+++ b/parseProtoFile.go
@@ -0,0 +1,44 @@
+package main
+
+// auto run protoc with the correct args
+
+import (
+ "os"
+ "strings"
+
+ "go.wit.com/log"
+ "golang.org/x/text/cases"
+ "golang.org/x/text/language"
+)
+
+// finds autogenpb:marshal and autogenpb:unique in the .proto file
+//
+// adds fields to []marshal and []unique
+func findAutogenpb(names map[string]string) error {
+ log.Info("starting findAutogenpb() on", names["protofile"])
+ // read in the .proto file
+ data, err := os.ReadFile(names["protofile"])
+ if err != nil {
+ // log.Info("open config file :", err)
+ return err
+ }
+
+ // look for included proto files
+ lines := strings.Split(string(data), "\n")
+ for _, line := range lines {
+ // log.Info("line:", line)
+ parts := strings.Fields(line)
+ if strings.Contains(line, "autogenpb:marshal") {
+ newm := parts[1]
+ log.Info("found marshal", newm)
+ marshalKeys = append(marshalKeys, newm)
+ }
+ if strings.Contains(line, "autogenpb:unique") {
+ newu := parts[1]
+ newu = cases.Title(language.English, cases.NoLower).String(newu)
+ log.Info("found unique field", newu)
+ uniqueKeys = append(uniqueKeys, newu)
+ }
+ }
+ return nil
+}