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}
bak:
cp -f autogenpb autogenpb.last
-cp -f autogenpb autogenpb.last
redo-protobuf:
rm -f *.pb.go
@ -63,9 +63,13 @@ proto:
#
# use the current autogenpb
proto-local: bak clean
proto-local-noformat: bak clean
./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:
cd example; rm -f go.* *.pb.go
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
// protobuf files to write out *.sort.pb.go and *.marshal.pb.go files
//
message MsgVar {
string varName = 1; // the variable name
string varType = 2; // the variable type
@ -58,15 +59,14 @@ message Sort {
string lockname = 4; //
bool needAll = 5; //
}
// used to auto-format protobuf files
message FormatMsg {
enum Type {
MESSAGE = 0;
ENUM = 1;
ONEOF = 2;
VAR = 3;
}
enum Type {
MESSAGE = 0;
ENUM = 1;
ONEOF = 2;
VAR = 3;
}
int64 depth = 1; // used to indent output
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 string lines = 7; // the variables
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 {
@ -86,7 +86,7 @@ message Find {
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 filename = 2; // yellow.proto
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()
bool doGui = 14; // if a gui.pb.go file should be created
}
// I know, I know, the whole point of using protobuf
// is so you don't need a uuid or versions because it's
// inherently forward compatable. nonetheless, a simple stubbed out
@ -116,10 +115,10 @@ message Files { // `autogenpb:marshal`
string version = 2; // `autogenpb:version:v0.0.38`
repeated File Files = 3; // an array of each .proto file in the working directory
}
// this generic message is used by autogen to identify and
// then dump the uuid and version from any arbitrary .pb file
message Identify { // `autogenpb:marshal`
string uuid = 1; //
string version = 2; //
}
// footer was empty

View File

@ -29,17 +29,6 @@ type StdMessage struct {
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 {
name() string
load()
@ -197,7 +186,7 @@ func newDepth(fmtmsg *FormatMsg, header string) *FormatMsg {
newmsg := new(FormatMsg)
newmsg.MaxVarname = fmtmsg.MaxVarname
newmsg.MaxVartype = fmtmsg.MaxVartype
newmsg.Header = header
newmsg.Header = strings.TrimSpace(header)
newmsg.Depth = fmtmsg.Depth + 1
return newmsg
@ -364,18 +353,40 @@ func (msg *FormatMsg) pad() string {
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 {
var newmsg []string
header := fmt.Sprintf("%s%s // enum depth=%d", curmsg.padBase(), curmsg.Header, curmsg.Depth)
newmsg = append(newmsg, header)
if argv.Debug {
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 {
line = fmt.Sprintf("%s%s", curmsg.pad(), line)
newmsg = append(newmsg, line)
}
footer := fmt.Sprintf("%s%s // enum footer depth=%d", curmsg.padBase(), curmsg.Footer, curmsg.Depth)
newmsg = append(newmsg, footer)
if argv.Debug {
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
}
@ -465,12 +476,12 @@ func formatMessage(curmsg *FormatMsg) []string {
switch msg.Type {
case FormatMsg_ENUM:
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)
}
case FormatMsg_MESSAGE:
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)
}
default: