|
5 | 5 | "encoding/json" |
6 | 6 | "flag" |
7 | 7 | "fmt" |
| 8 | + "golang.org/x/mod/module" |
8 | 9 | "io/ioutil" |
9 | 10 | "os" |
10 | 11 | "os/exec" |
@@ -258,28 +259,25 @@ func applyReplacements(mf *modfile.File, pins map[string]string) { |
258 | 259 | // ensureKubernetesReplace ensures there's a "k8s.io/kubernetes => k8s.io/kubernetes vX.Y.Z" line |
259 | 260 | // matching the require(...) version in case something references it directly. |
260 | 261 | func ensureKubernetesReplace(mf *modfile.File, k8sVer string) { |
261 | | - found := false |
| 262 | + var newReplaces []*modfile.Replace |
| 263 | + |
262 | 264 | for _, rep := range mf.Replace { |
263 | | - if rep.Old.Path == "k8s.io/kubernetes" { |
264 | | - found = true |
265 | | - if rep.New.Version != k8sVer { |
266 | | - if debug { |
267 | | - fmt.Printf("Updating k8s.io/kubernetes replace from %s to %s\n", |
268 | | - rep.New.Version, k8sVer) |
269 | | - } |
270 | | - rep.New.Version = k8sVer |
| 265 | + if rep.Old.Path == "k8s.io/kubernetes" && rep.New.Version != k8sVer { |
| 266 | + if debug { |
| 267 | + fmt.Printf("Updating k8s.io/kubernetes replace from %s to %s\n", rep.New.Version, k8sVer) |
271 | 268 | } |
272 | | - break |
273 | | - } |
274 | | - } |
275 | | - if !found { |
276 | | - if debug { |
277 | | - fmt.Printf("Inserting k8s.io/kubernetes => %s\n", k8sVer) |
278 | | - } |
279 | | - if err := mf.AddReplace("k8s.io/kubernetes", "", "k8s.io/kubernetes", k8sVer); err != nil { |
280 | | - die("Error adding replace for k8s.io/kubernetes: %v", err) |
| 269 | + continue // Skip adding this entry to newReplaces |
281 | 270 | } |
| 271 | + newReplaces = append(newReplaces, rep) |
282 | 272 | } |
| 273 | + |
| 274 | + // Add the correct replace directive |
| 275 | + newReplaces = append(newReplaces, &modfile.Replace{ |
| 276 | + Old: module.Version{Path: "k8s.io/kubernetes"}, |
| 277 | + New: module.Version{Path: "k8s.io/kubernetes", Version: k8sVer}, |
| 278 | + }) |
| 279 | + |
| 280 | + mf.Replace = newReplaces |
283 | 281 | } |
284 | 282 |
|
285 | 283 | // findKubernetesVersion returns the version in the require(...) block for k8s.io/kubernetes |
|
0 commit comments