Skip to content

Commit

Permalink
Merge pull request #23 from eclipse/fix/spec2mu_empty_defaults
Browse files Browse the repository at this point in the history
import protos with enum support
  • Loading branch information
veith committed May 17, 2022
2 parents 851757b + def285b commit 8e0cac9
Show file tree
Hide file tree
Showing 7 changed files with 23 additions and 11 deletions.
2 changes: 1 addition & 1 deletion furo/cmd/root.go
Expand Up @@ -50,7 +50,7 @@ Modify your default flow in the .furo config file to your needs. You can set any
Run: func(cmd *cobra.Command, args []string) {
runner.Run(cmd, args)
},
Version: "1.35.0",
Version: "1.36.0",
}

// Execute adds all child commands to the root command and sets flags appropriately.
Expand Down
4 changes: 2 additions & 2 deletions furo/internal/cmd/genEsModule/genEsModule.go
Expand Up @@ -41,7 +41,7 @@ func Run(cmd *cobra.Command, args []string) {
allServices := clientspec.GetAllServices()

// check for enum fields in types and add the options
for k, t := range allTypes {
for _, t := range allTypes {
if t.Fields != nil {
// convert fields from yaml.Node to Field type
for pair := t.Fields.Oldest(); pair != nil; pair = pair.Next() {
Expand All @@ -60,7 +60,7 @@ func Run(cmd *cobra.Command, args []string) {
field.Meta.Options.List = append(field.Meta.Options.List, &option)
}

fmt.Println(k, allTypes[field.Type].Values)
// fmt.Println(k, allTypes[field.Type].Values)
}
}
}
Expand Down
10 changes: 10 additions & 0 deletions furo/internal/cmd/genMessageProtos/genMessageProtos.go
Expand Up @@ -91,6 +91,16 @@ func Run(cmd *cobra.Command, args []string) {
// typename is not the filename
s := strings.Split(typeName, ".")
filepath := strings.Join(s[:len(s)-1], "/") + "/" + enumAST.EnumSpec.XProto.Targetfile

if protoTplData[filepath] == nil {
protoTplData[filepath] = &singleTplData{
preImport: map[string]bool{},
}
}

protoTplData[filepath].Package = enumAST.EnumSpec.XProto.Package
protoTplData[filepath].Options = enumAST.EnumSpec.XProto.Options

protoTplData[filepath].Enums = append(protoTplData[filepath].Enums, enumAST.EnumSpec)
}

Expand Down
2 changes: 1 addition & 1 deletion furo/internal/cmd/spec2muSpec/associator.go
Expand Up @@ -44,7 +44,7 @@ func NewUTShadowList() UTShadowList {

func (s *UTShadowList) AddTypeNode(fullTypeName string, ast *typeAst.TypeAst) *UTshadowNode {

if strings.HasSuffix(fullTypeName, viper.GetString("muSpec.requestTypeSuffix")) {
if viper.GetString("muSpec.requestTypeSuffix") != "" && strings.HasSuffix(fullTypeName, viper.GetString("muSpec.requestTypeSuffix")) {
return s.AddRequestTypeNode(ast)
}

Expand Down
6 changes: 4 additions & 2 deletions furo/internal/cmd/spec2muSpec/typeUpdater.go
Expand Up @@ -56,20 +56,22 @@ func updateAndStoreMicroTypes(typeItems map[string]*UTshadowNode) {
}
fieldline = append(fieldline, f.Type+":"+strconv.Itoa(int(f.XProto.Number)))

if f.Meta.Default != "" {
if f.Meta != nil && f.Meta.Default != "" {
fieldline = append(fieldline, "= "+f.Meta.Default)
}
if f.XProto.Oneof != "" {
fieldline = append(fieldline, "["+f.XProto.Oneof+"]")
}
fieldline = append(fieldline, "#"+f.Description)
fields.Set(iKey, strings.Join(fieldline, " "))

})

muType := &microtypes.MicroType{
Type: strings.Join(typeLine, " "), //type: "sample.Sample #Sample"
Fields: fields,
Target: shadowNode.edgeMicroTypeNode.Target,
//Target: shadowNode.edgeMicroTypeNode.Target,
Target: shadowNode.edgeTypeNode.TypeSpec.XProto.Targetfile,
}

// add type to "file"
Expand Down
8 changes: 4 additions & 4 deletions protoc-gen-furo-muspecs/pkg/generator/generator.go
Expand Up @@ -126,7 +126,7 @@ func Generate(protoAST *protoast.ProtoAST) error {
enumSpec := &microenums.MicroEnum{
Enum: strings.Join(typeLine, " "),
Values: getEnumValues(Enum),
Target: path.Base(protofilename),
Target: "ENUM_" + path.Base(protofilename),
AllowAlias: Enum.AllowAlias,
}

Expand All @@ -151,7 +151,7 @@ func Generate(protoAST *protoast.ProtoAST) error {
func buildNestedMessages(file []*microtypes.MicroType, target string, prefix string, nestedType []*descriptorpb.DescriptorProto) []*microtypes.MicroType {
for _, message := range nestedType {
typeLine := []string{}
typeLine = append(typeLine, prefix+"_"+*message.Name)
typeLine = append(typeLine, prefix+"."+*message.Name)
typeLine = append(typeLine, "# ")

typeSpec := &microtypes.MicroType{
Expand All @@ -161,7 +161,7 @@ func buildNestedMessages(file []*microtypes.MicroType, target string, prefix str
}

file = append(file, typeSpec)
file = buildNestedMessages(file, target, prefix+"_"+*message.Name, message.NestedType)
file = buildNestedMessages(file, target, prefix+"."+*message.Name, message.NestedType)
}

return file
Expand Down Expand Up @@ -339,7 +339,7 @@ func extractTypeNameFromField(fieldinfo *protoast.FieldInfo) string {
parts := strings.Split(*field.TypeName, ".")
mi := len(parts) - 2
fi := len(parts) - 1
parts[mi] = parts[mi] + "_" + parts[fi]
parts[mi] = parts[mi] + "." + parts[fi]
f := strings.Join(parts[:len(parts)-1], ".")
return f[1:]
}
Expand Down
2 changes: 1 addition & 1 deletion protoc-gen-furo-muspecs/pkg/protoast/sourceInfo.go
Expand Up @@ -161,7 +161,7 @@ func GetSourceInfo(descr *descriptorpb.FileDescriptorProto) SourceInfo {
}

SourceInfo.InlineEnums = append(SourceInfo.InlineEnums, EnumInfo{
Name: *descr.MessageType[msgIndex].Name + "_" + *nestedEnum.Name,
Name: *descr.MessageType[msgIndex].Name + "." + *nestedEnum.Name,
ValuesInfo: vals,
AllowAlias: alias,
Info: location,
Expand Down

0 comments on commit 8e0cac9

Please sign in to comment.