| 247 | } |
| 248 | |
| 249 | func ApplyGitResourceOverrides(gitResourcesBaseline []*GitResourceGitRef, overrides []*GitResourceGitRef) []*GitResourceGitRef { |
| 250 | result := make([]*GitResourceGitRef, 0, len(gitResourcesBaseline)) |
| 251 | |
| 252 | for _, gitResourceGitRef := range gitResourcesBaseline { |
| 253 | |
| 254 | //Try and find any override |
| 255 | overrideIdx := slices.IndexFunc(overrides, func(override *GitResourceGitRef) bool { |
| 256 | return override.Equals(gitResourceGitRef) |
| 257 | }) |
| 258 | |
| 259 | if overrideIdx >= 0 { |
| 260 | var gitRef string |
| 261 | override := overrides[overrideIdx] |
| 262 | if override.GitRef == "*" { |
| 263 | gitRef = gitResourceGitRef.GitRef |
| 264 | } else { |
| 265 | gitRef = override.GitRef |
| 266 | } |
| 267 | result = append(result, &GitResourceGitRef{ |
| 268 | ActionName: gitResourceGitRef.ActionName, |
| 269 | GitRef: gitRef, |
| 270 | GitResourceName: gitResourceGitRef.GitResourceName, |
| 271 | }) |
| 272 | } else { |
| 273 | //no override, just return a copy of the original |
| 274 | result = append(result, &GitResourceGitRef{ |
| 275 | ActionName: gitResourceGitRef.ActionName, |
| 276 | GitRef: gitResourceGitRef.GitRef, |
| 277 | GitResourceName: gitResourceGitRef.GitResourceName, |
| 278 | }) |
| 279 | } |
| 280 | } |
| 281 | |
| 282 | return result |
| 283 | } |
| 284 | |
| 285 | // Note this always uses the Table Printer, it pays no respect to outputformat=json, because it's only part of the interactive flow |
| 286 | func printGitResourceGitRefs(ioWriter io.Writer, gitResourceGitRefs []*GitResourceGitRef) error { |