INNER CODE UNIT · Go
initialSpec
megaease/easemesh · emctl/cmd/transformer/main.go:63
func initialSpec(resourceName generator.ResourceType, subResource string, mapping []string) *generator.InterfaceFileSpec {
spec := generator.InterfaceFileSpec{}
// Get the package of the file with go:generate comment
goPackage := os.Getenv("GOPACKAGE")
spec.Buf = jen.NewFile(goPackage)
spec.SourceFile = os.Getenv("GOFILE")
spec.PkgName = goPackage
ext := filepath.Ext(spec.SourceFile)
baseFilename := spec.SourceFile[0 : len(spec.SourceFile)-len(ext)]
spec.GenerateFileName = "zz_" + baseFilename + "_gen.go"
spec.ResourceType = resourceName
spec.ResourceMapping = extractResourceMapping(mapping)
spec.SubResource = subResource
return &spec
}
func extractResourceMapping(mappings []string) map[string]string {
result := make(map[string]string)