func init()

in tools/generator-example-doc/main.go [35:89]


func init() {
	var items []ResourceProvider
	mappingJsonPath := path.Join("tools", "generator-example-doc", "resource_providers.json")
	data, err := os.ReadFile(mappingJsonPath)
	if err != nil {
		panic(err)
	}

	err = json.Unmarshal(data, &items)
	if err != nil {
		panic(err)
	}

	resourceProviders = make(map[string]ResourceProvider)
	for _, item := range items {
		resourceProviders[strings.ToLower(item.ResourceProviderNamespace)] = item
	}

	var resourceTypeItems []ResourceType
	resourceTypeJsonPath := path.Join("tools", "generator-example-doc", "resource_types.json")
	data, err = os.ReadFile(resourceTypeJsonPath)
	if err != nil {
		panic(err)
	}
	err = json.Unmarshal(data, &resourceTypeItems)
	if err != nil {
		panic(err)
	}
	resourceTypes = make(map[string]ResourceType)
	for _, item := range resourceTypeItems {
		resourceTypes[strings.ToLower(item.ResourceType)] = item
	}

	// check duplicate resource type
	resourceTypeMap := make(map[string]int)
	for _, item := range resourceTypeItems {
		resourceTypeMap[item.ResourceType]++
	}
	duplicateResourceTypes := make([]string, 0)
	for k, v := range resourceTypeMap {
		if v > 1 {
			duplicateResourceTypes = append(duplicateResourceTypes, k)
		}
	}
	slices.Sort(duplicateResourceTypes)
	for _, item := range duplicateResourceTypes {
		log.Printf("Duplicate resource type: %s", item)
	}

	data, err = os.ReadFile(path.Join("tools", "generator-example-doc", "template.md"))
	if err != nil {
		panic(err)
	}
	template = string(data)
}