used autogenpb to reformat file.proto

This commit is contained in:
Jeff Carr 2025-03-29 11:55:54 -05:00
parent 0a97886cd2
commit 79e59bef11
3 changed files with 45 additions and 31 deletions

View File

@ -46,7 +46,7 @@ build:
cp -f autogenpb autogenpb.${BUILDTIME} cp -f autogenpb autogenpb.${BUILDTIME}
bak: bak:
cp -f autogenpb autogenpb.last -cp -f autogenpb autogenpb.last
redo-protobuf: redo-protobuf:
rm -f *.pb.go rm -f *.pb.go
@ -63,9 +63,13 @@ proto:
# #
# use the current autogenpb # use the current autogenpb
proto-local: bak clean proto-local-noformat: bak clean
./autogenpb.last --proto file.proto --package main --no-format ./autogenpb.last --proto file.proto --package main --no-format
# use the current autogenpb
proto-local-format: bak clean
./autogenpb.last --proto file.proto --package main
junk: junk:
cd example; rm -f go.* *.pb.go cd example; rm -f go.* *.pb.go
cd example; ../autogenpb --proto file.proto --package yellow cd example; ../autogenpb --proto file.proto --package yellow

View File

@ -25,6 +25,7 @@ package main;
// it needs in these protobuf files, then it processes the // it needs in these protobuf files, then it processes the
// protobuf files to write out *.sort.pb.go and *.marshal.pb.go files // protobuf files to write out *.sort.pb.go and *.marshal.pb.go files
// //
message MsgVar { message MsgVar {
string varName = 1; // the variable name string varName = 1; // the variable name
string varType = 2; // the variable type string varType = 2; // the variable type
@ -58,15 +59,14 @@ message Sort {
string lockname = 4; // string lockname = 4; //
bool needAll = 5; // bool needAll = 5; //
} }
// used to auto-format protobuf files // used to auto-format protobuf files
message FormatMsg { message FormatMsg {
enum Type { enum Type {
MESSAGE = 0; MESSAGE = 0;
ENUM = 1; ENUM = 1;
ONEOF = 2; ONEOF = 2;
VAR = 3; VAR = 3;
} }
int64 depth = 1; // used to indent output int64 depth = 1; // used to indent output
int64 maxVarname = 2; // max string length of var names int64 maxVarname = 2; // max string length of var names
@ -76,7 +76,7 @@ message FormatMsg {
repeated FormatMsg msgs = 6; // locally defined messages and enums repeated FormatMsg msgs = 6; // locally defined messages and enums
repeated string lines = 7; // the variables repeated string lines = 7; // the variables
string footer = 8; // the '}' line string footer = 8; // the '}' line
Type type = 9; // yep. type. yep. that's what this is for Type type = 9; // yep. type. yep. that's what this is for
} }
message Find { message Find {
@ -86,7 +86,7 @@ message Find {
bool needAll = 4; // bool needAll = 4; //
} }
message File { // `autogenpb:var:w io.Writer` message File { // `autogenpb:var:w io.Writer`
string Package = 1; // whatever the package name is at the top of the .go file string Package = 1; // whatever the package name is at the top of the .go file
string filename = 2; // yellow.proto string filename = 2; // yellow.proto
string pbfilename = 3; // yellow.pb.go string pbfilename = 3; // yellow.pb.go
@ -104,7 +104,6 @@ message File { // `autogenpb:var:w io.Writer`
string goPath = 13; // the version to use in a func NewMsgName() string goPath = 13; // the version to use in a func NewMsgName()
bool doGui = 14; // if a gui.pb.go file should be created bool doGui = 14; // if a gui.pb.go file should be created
} }
// I know, I know, the whole point of using protobuf // I know, I know, the whole point of using protobuf
// is so you don't need a uuid or versions because it's // is so you don't need a uuid or versions because it's
// inherently forward compatable. nonetheless, a simple stubbed out // inherently forward compatable. nonetheless, a simple stubbed out
@ -116,10 +115,10 @@ message Files { // `autogenpb:marshal`
string version = 2; // `autogenpb:version:v0.0.38` string version = 2; // `autogenpb:version:v0.0.38`
repeated File Files = 3; // an array of each .proto file in the working directory repeated File Files = 3; // an array of each .proto file in the working directory
} }
// this generic message is used by autogen to identify and // this generic message is used by autogen to identify and
// then dump the uuid and version from any arbitrary .pb file // then dump the uuid and version from any arbitrary .pb file
message Identify { // `autogenpb:marshal` message Identify { // `autogenpb:marshal`
string uuid = 1; // string uuid = 1; //
string version = 2; // string version = 2; //
} }
// footer was empty

View File

@ -29,17 +29,6 @@ type StdMessage struct {
all []Message all []Message
} }
func (msg *EnumMessage) name() string {
return "fuckit enum"
}
func (msg *StdMessage) name() string {
if msg.msgPB != nil {
return msg.msgPB.Header
}
return "fuckit std"
}
type Message interface { type Message interface {
name() string name() string
load() load()
@ -197,7 +186,7 @@ func newDepth(fmtmsg *FormatMsg, header string) *FormatMsg {
newmsg := new(FormatMsg) newmsg := new(FormatMsg)
newmsg.MaxVarname = fmtmsg.MaxVarname newmsg.MaxVarname = fmtmsg.MaxVarname
newmsg.MaxVartype = fmtmsg.MaxVartype newmsg.MaxVartype = fmtmsg.MaxVartype
newmsg.Header = header newmsg.Header = strings.TrimSpace(header)
newmsg.Depth = fmtmsg.Depth + 1 newmsg.Depth = fmtmsg.Depth + 1
return newmsg return newmsg
@ -364,18 +353,40 @@ func (msg *FormatMsg) pad() string {
return pad return pad
} }
func (msg *FormatMsg) padding(offset int) string {
var pad string
for i := offset; i < int(msg.Depth); i += 1 {
pad += fmt.Sprintf("%8s", " ")
}
return pad
}
func formatEnum(curmsg *FormatMsg) []string { func formatEnum(curmsg *FormatMsg) []string {
var newmsg []string var newmsg []string
header := fmt.Sprintf("%s%s // enum depth=%d", curmsg.padBase(), curmsg.Header, curmsg.Depth) if argv.Debug {
newmsg = append(newmsg, header) header := fmt.Sprintf("%s%s // enum2 depth=%d", curmsg.padBase(), curmsg.Header, curmsg.Depth)
newmsg = append(newmsg, header)
header = fmt.Sprintf("//%s//%s// enum2 depth=%d", curmsg.padding(2), curmsg.Header, curmsg.Depth)
newmsg = append(newmsg, header)
header = fmt.Sprintf("// %s", curmsg.Header)
newmsg = append(newmsg, header)
} else {
header := fmt.Sprintf("%s%s", curmsg.padBase(), curmsg.Header)
newmsg = append(newmsg, header)
}
for _, line := range curmsg.Lines { for _, line := range curmsg.Lines {
line = fmt.Sprintf("%s%s", curmsg.pad(), line) line = fmt.Sprintf("%s%s", curmsg.pad(), line)
newmsg = append(newmsg, line) newmsg = append(newmsg, line)
} }
footer := fmt.Sprintf("%s%s // enum footer depth=%d", curmsg.padBase(), curmsg.Footer, curmsg.Depth) if argv.Debug {
newmsg = append(newmsg, footer) footer := fmt.Sprintf("%s%s // enum2 footer depth=%d", curmsg.padBase(), curmsg.Footer, curmsg.Depth)
newmsg = append(newmsg, footer)
} else {
footer := fmt.Sprintf("%s%s", curmsg.padBase(), curmsg.Footer)
newmsg = append(newmsg, footer)
}
return newmsg return newmsg
} }
@ -465,12 +476,12 @@ func formatMessage(curmsg *FormatMsg) []string {
switch msg.Type { switch msg.Type {
case FormatMsg_ENUM: case FormatMsg_ENUM:
for _, line := range formatEnum(msg) { for _, line := range formatEnum(msg) {
line = fmt.Sprintf("%s%s", curmsg.pad(), line) // line = fmt.Sprintf("%s%s", curmsg.pad(), line)
newmsg = append(newmsg, line) newmsg = append(newmsg, line)
} }
case FormatMsg_MESSAGE: case FormatMsg_MESSAGE:
for _, line := range msg.format() { for _, line := range msg.format() {
line = fmt.Sprintf("%s%s", curmsg.pad(), line) // line = fmt.Sprintf("%s%s", curmsg.pad(), line)
newmsg = append(newmsg, line) newmsg = append(newmsg, line)
} }
default: default: