package main import ( "encoding/json" "math/rand" "os" ) func ExampleAggregateVersions() { names := []string{ "dlkjsgljk", "v1.20.16", "v1.19.8_containerd.1.4.4", "v1.20.15_containerd.1.4.13", "v1.20.1_containerd.1.4.3", "lkjzsfgj", "v1.20.9_containerd.1.4.8", "v1.21.0_containerd.1.4.4", "v1.21.10_containerd.1.4.12", "v1.21.10_containerd.1.4.13", "v1.21.10_containerd.1.5.10", "v1.21.10_containerd.1.5.9", "v1.21.11_containerd.1.4.13", "v1.21.14_containerd.1.5.16", "v1.21.9_containerd.1.5.9", } rand.Shuffle(len(names), func(i, j int) { names[i], names[j] = names[j], names[i] }) agg := aggregateVersions(names) enc := json.NewEncoder(os.Stdout) enc.SetIndent("", " ") enc.Encode(agg) // Output: // { // "1": { // "Latest": "v1.21.14_containerd.1.5.16", // "All": [ // "v1.19.8_containerd.1.4.4", // "v1.20.1_containerd.1.4.3", // "v1.20.9_containerd.1.4.8", // "v1.20.15_containerd.1.4.13", // "v1.20.16", // "v1.21.0_containerd.1.4.4", // "v1.21.9_containerd.1.5.9", // "v1.21.10_containerd.1.4.12", // "v1.21.10_containerd.1.4.13", // "v1.21.10_containerd.1.5.9", // "v1.21.10_containerd.1.5.10", // "v1.21.11_containerd.1.4.13", // "v1.21.14_containerd.1.5.16" // ] // }, // "1.19": { // "Latest": "v1.19.8_containerd.1.4.4", // "All": [ // "v1.19.8_containerd.1.4.4" // ] // }, // "1.20": { // "Latest": "v1.20.16", // "All": [ // "v1.20.1_containerd.1.4.3", // "v1.20.9_containerd.1.4.8", // "v1.20.15_containerd.1.4.13", // "v1.20.16" // ] // }, // "1.21": { // "Latest": "v1.21.14_containerd.1.5.16", // "All": [ // "v1.21.0_containerd.1.4.4", // "v1.21.9_containerd.1.5.9", // "v1.21.10_containerd.1.4.12", // "v1.21.10_containerd.1.4.13", // "v1.21.10_containerd.1.5.9", // "v1.21.10_containerd.1.5.10", // "v1.21.11_containerd.1.4.13", // "v1.21.14_containerd.1.5.16" // ] // } // } }