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)

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…