func printFieldNames()

in config/print/main.go [89:134]


func printFieldNames(b []byte) error {
	type Dashboard struct {
		DashboardTabs []map[string]interface{} `json:"dashboard_tab"`
	}
	type Config struct {
		TestGroups      []map[string]interface{} `json:"test_groups"`
		Dashboards      []Dashboard              `json:"dashboards"`
		DashboardGroups []map[string]interface{} `json:"dashboard_groups"`
	}
	var output Config
	err := json.Unmarshal(b, &output)
	if err != nil {
		return err
	}

	fmt.Printf("%d test groups, %d dashboards, %d dashboard groups\n", len(output.TestGroups), len(output.Dashboards), len(output.DashboardGroups))

	testGroupFields := map[string]int64{}
	for _, value := range output.TestGroups {
		for k := range value {
			testGroupFields[k]++
		}
	}
	fmt.Printf("Test Groups (%d fields):\n", len(testGroupFields))
	for k, v := range testGroupFields {
		fmt.Printf("%s,%d\n", k, v)
	}

	tabFields := map[string]int64{}
	for _, dashboard := range output.Dashboards {
		for _, val := range dashboard.DashboardTabs {
			for k := range val {
				tabFields[k]++
			}
		}
	}
	fmt.Printf("Dashboard Tabs (%d fields):\n", len(tabFields))
	for k, v := range tabFields {
		fmt.Printf("%s,%d\n", k, v)
	}
	fmt.Printf("Test Groups (%d fields):\n", len(testGroupFields))
	for k, v := range testGroupFields {
		fmt.Printf("%s,%d\n", k, v)
	}
	return nil
}