summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-09-23 07:43:08 -0500
committerJeff Carr <[email protected]>2025-09-23 07:43:08 -0500
commit08dc949873de9e8b4d4c1bb3daeecc14f8cc326b (patch)
tree8fa284badbbbd47fbc2f2b88ef25b43c4090fe9d
parente9965f51092ef287b3ea0a8075c4fc359d37a47a (diff)
compiles with new forgepb proto files
-rw-r--r--generate.go6
-rw-r--r--human.go83
-rw-r--r--protoParse.go9
3 files changed, 12 insertions, 86 deletions
diff --git a/generate.go b/generate.go
index e0d8bea..7ab5b07 100644
--- a/generate.go
+++ b/generate.go
@@ -179,8 +179,10 @@ func (pb *Files) makeNewSortfile(pf *File) error {
CHILD := s.VarType
VARNAME := s.VarName
- pmsg := pf.findMsg(s.MsgName)
+ // log.Printf("TO SORT IterAll() PARENT==VARNAME? PARENT=%s CHILD=%s VARNAME=%s (%v)\n", PARENT, CHILD, VARNAME, pf.ToSort)
+ pmsg := pf.findMsg(PARENT)
if pmsg == nil {
+ // log.Printf("FAILED TO ADD SORT pmsg=nil PARENT=%s CHILD=%s VARNAME=%s\n", PARENT, CHILD, VARNAME)
return fmt.Errorf("failed to find struct %s", s.MsgName)
}
@@ -192,6 +194,8 @@ func (pb *Files) makeNewSortfile(pf *File) error {
FRUIT := CHILD
funcdef = pmsg.addIterAll(wSort, FRUITS, FRUIT)
log.Printf("Adding %s\n", funcdef)
+ } else {
+ // log.Printf("FAILED TO ADD SORT IterAll() PARENT != VARNAME PARENT=%s CHILD=%s VARNAME=%s\n", PARENT, CHILD, VARNAME)
}
/*
diff --git a/human.go b/human.go
index 49eba13..3bfb994 100644
--- a/human.go
+++ b/human.go
@@ -125,86 +125,3 @@ func (msg *MsgName) printMsg() {
log.Printf("\t%s %s %s\n", v.VarName, v.VarType, end)
}
}
-
-/*
-func checkCmd(cmd string) {
- // path, err := exec.LookPath(cmd)
- _, err := exec.LookPath(cmd)
- if err != nil {
- // fmt.Printf("\n%s is not in the PATH\n", cmd)
- userInstructions()
- log.Sleep(2)
- } else {
- // fmt.Printf("%s is available at %s\n", cmd, path)
- }
-}
-
-func (pf *File) noPluralMessage() {
- base := cases.Title(language.English, cases.NoLower).String(pf.Filebase)
-
- log.Info("")
- log.Info("###########################################################################")
- log.Info("Your proto file", pf.Filename, "does not contain the correct 'message' definitions")
- log.Info("")
- log.Info("For autogenpb to work on your file", pf.Filename, ", you must have both names exactly:")
- log.Info("")
- log.Printf("message %s {\n", base)
- log.Info("}")
- log.Printf("message %s {\n", base+"s")
- log.Info("}")
- log.Info("")
- log.Info("###########################################################################")
- badExit(fmt.Errorf("proto file error %s", pf.Filename))
-}
-*/
-
-// message Fruits { // `autogenpb:marshal` `autogenpb:mutex`
-// string uuid = 1; // `autogenpb:uuid:be926ad9-f07f-484c-adf2-d96eeabf3079`
-// string version = 2; // `autogenpb:version:v0.0.1`
-// repeated Fruit Fruits = 3; // THIS MUST BE "Fruit" and then "Fruit" + "s"
-// }
-
-/*
-func (pf *File) noUuid() {
- base := cases.Title(language.English, cases.NoLower).String(pf.Filebase)
- id := uuid.New()
-
- log.Info("")
- log.Info("###########################################################################")
- log.Info("Your proto file", pf.Filename, "is incorrect for 'message' ", base+"s")
- log.Info("")
- log.Info("For autogenpb to work on your file", pf.Filename, ",", base+"s must be exactly:")
- log.Info("")
- log.Info("message", base+"s", "{ // `autogenpb:marshal` `autogenpb:mutex`")
- log.Info(" string uuid = 1; // `autogenpb:uuid:" + id.String() + "`")
- log.Info(" string version = 2; // `autogenpb:version:v0.0.1`")
- log.Info(" repeated", base, base+"s", " = 3; // THIS MUST BE ", base, " and then ", base+"s")
- log.Info("}")
- log.Info("")
- log.Info("If you don't have a UUID, you can use the randomly generated one here")
- log.Info("")
- log.Info("###########################################################################")
- badExit(fmt.Errorf("proto file error %s", pf.Filename))
-}
-
-func userNotes(result cmd.Status) error {
- log.Info("protoc failed", result.Cmd, "with", result.Exit)
- for _, line := range result.Stdout {
- log.Info("STDOUT:", line)
- }
- for _, line := range result.Stderr {
- log.Info("STDERR:", line)
- }
- userInstructions()
- return fmt.Errorf("protoc failed with %d %v", result.Exit, result.Error)
-}
-
-func userInstructions() {
- log.Info("This is likely because you don't have protoc and protoc-gen-go installed")
- log.Info("")
- log.Info("On debian, you can:")
- log.Info(" apt install protobuf-compiler # for protoc")
- log.Info(" apt install protoc-gen-go # for protoc-gen-go")
- log.Info("")
-}
-*/
diff --git a/protoParse.go b/protoParse.go
index 474028c..33951d2 100644
--- a/protoParse.go
+++ b/protoParse.go
@@ -91,12 +91,12 @@ func (pf *File) protoParse() error {
}
pf.makeSortTable()
- // for i, s := range slices.Backward(pf.ToSort) {
return nil
}
func (pf *File) makeSortTable() {
pf.sortWhat(pf.Bases)
+ // log.Info("TO SORT AFTER BASES:", pf.ToSort)
pf.sortWhat(pf.Base)
// everything else
@@ -164,9 +164,14 @@ func (pf *File) parseForMessage(line string) *MsgName {
msg = new(MsgName)
base := cases.Title(language.English, cases.NoLower).String(pf.Filebase)
- prefix := "message " + base + "s {" // only look for this for now
+ prefix := "message " + base + "s {" // only look for this for now
+ prefixEnglishIsWeird := "message " + base + "es {" // only look for this for now
+
if strings.HasPrefix(line, prefix) {
pf.Bases = msg
+ } else if strings.HasPrefix(line, prefixEnglishIsWeird) {
+ pf.Bases = msg
+ // panic("got here! :" + prefixEnglishIsWeird)
} else {
prefix := "message " + base + " {" // only look for this for now
if strings.HasPrefix(line, prefix) {