diff options
| author | Jeff Carr <[email protected]> | 2025-01-09 03:44:09 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-01-09 03:44:09 -0600 |
| commit | 6f354d8d9f2d34505794f5f842de967297a78616 (patch) | |
| tree | 8bc10cd5c9966b8ea9550cd3da9a32d50a3c61be /parseProtoFile.go | |
| parent | 4ff3a92bc684dfc2d136b1d2ae620097573056b9 (diff) | |
rename file
Diffstat (limited to 'parseProtoFile.go')
| -rw-r--r-- | parseProtoFile.go | 130 |
1 files changed, 0 insertions, 130 deletions
diff --git a/parseProtoFile.go b/parseProtoFile.go deleted file mode 100644 index 49f382c..0000000 --- a/parseProtoFile.go +++ /dev/null @@ -1,130 +0,0 @@ -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" -) - -// this parses the .proto file and handles anything with `autogenpb: ` - -// finds autogenpb:marshal and autogenpb:unique in the .proto file -// -// adds fields to []marshal and []unique -func (pb *Files) findAutogenpb(f *File) error { - // log.Info("starting findAutogenpb() on", names["protofile"]) - // read in the .proto file - data, err := os.ReadFile(f.Filename) - if err != nil { - // log.Info("open config file :", err) - return err - } - - var curmsg *MsgName - - // parse the proto file for message struct names - for _, line := range strings.Split(string(data), "\n") { - if strings.HasPrefix(line, "message ") { - curmsg = f.parseForMessage(line) - } - if strings.HasPrefix(line, "}") { - curmsg = nil - } - - // log.Info("line:", line) - parts := strings.Fields(line) - - if strings.Contains(line, "autogenpb:sort") { - if parts[0] == "repeated" { - newm := parts[1] - if curmsg == nil { - log.Info("Error: Found Sort for:", newm, "however, this struct can't be used") - // log.Info("found marshal", newm) - marshalKeys = append(marshalKeys, newm) - } else { - log.Info("Found Sort for:", newm, "in struct", curmsg.Name) - } - } else { - log.Info("Error:", line) - log.Info("Error: can not sort on non repeated fields") - } - } - if strings.Contains(line, "autogenpb:unique") { - if parts[0] == "repeated" { - // log.Info("Found Unique for:", parts) - newu := parts[1] - newu = cases.Title(language.English, cases.NoLower).String(newu) - log.Info("found unique field", newu, "in struct", curmsg.Name) - // uniqueKeys = append(uniqueKeys, newu) - } else { - log.Info("Error:", line) - log.Info("Error: can not append on non repeated fields") - } - } - } - return nil -} - -// looks for mutex and marshal entries -func (f *File) parseForMessage(line string) *MsgName { - fields := strings.Fields(line) - if fields[0] != "message" { - return nil - } - msgName := fields[1] - msg := new(MsgName) - f.MsgNames = append(f.MsgNames, msg) - msg.Name = msgName - - if strings.Contains(line, "`autogenpb:mutex`") { - msg.DoMutex = true - log.Info("Found Mutex for:", msg.Name) - } - if strings.Contains(line, "`autogenpb:marshal`") { - msg.DoMarshal = true - log.Info("Found Marshal for:", msg.Name) - } - return msg -} - -func (pb *Files) findGlobalAutogenpb(f *File) error { - // log.Info("starting findAutogenpb() on", filename) - // read in the .proto file - data, err := os.ReadFile(f.Filename) - if err != nil { - // log.Info("open config file :", err) - return err - } - - lines := strings.Split(string(data), "\n") - for _, line := range lines { - if strings.Contains(line, "autogenpb:ignoreproto") { - // ignore this protofile completely (don't make foo.pb.go) - os.Exit(0) - } - if strings.Contains(line, "autogenpb:no-marshal") { - // don't marshal anything (don't make foo.marshal.pb.go) - argv.NoMarshal = true - } - if strings.Contains(line, "autogenpb:no-sort") { - // don't sort anything (don't make foo.sort.pb.go) - argv.NoSort = true - } - if strings.Contains(line, "autogenpb:mutex") { - // try the mutex hack - argv.Mutex = true - } - if strings.Contains(line, "autogenpb:gover:") { - // todo: parse the output here - parts := strings.Split(line, "autogenpb:gover:") - log.Info("found gover:", parts[1]) - argv.Mutex = true - } - } - return nil -} |
