mirror of
https://github.com/rancher/k3k.git
synced 2026-03-22 11:28:28 +00:00
54 lines
988 B
Go
54 lines
988 B
Go
package cmds
|
|
|
|
import "fmt"
|
|
|
|
type change struct {
|
|
field string
|
|
oldValue string
|
|
newValue string
|
|
}
|
|
|
|
func printDiff(changes []change) {
|
|
for _, c := range changes {
|
|
if c.oldValue == c.newValue {
|
|
continue
|
|
}
|
|
|
|
fmt.Printf("%s: %s -> %s\n", c.field, c.oldValue, c.newValue)
|
|
}
|
|
}
|
|
|
|
func printMapDiff(title string, changes []change) {
|
|
if len(changes) == 0 {
|
|
return
|
|
}
|
|
|
|
fmt.Printf("%s:\n", title)
|
|
|
|
for _, c := range changes {
|
|
switch c.oldValue {
|
|
case "":
|
|
fmt.Printf(" %s=%s (new)\n", c.field, c.newValue)
|
|
default:
|
|
fmt.Printf(" %s=%s -> %s=%s\n", c.field, c.oldValue, c.field, c.newValue)
|
|
}
|
|
}
|
|
}
|
|
|
|
func diffMaps(oldMap, newMap map[string]string) []change {
|
|
var changes []change
|
|
|
|
// Check for new and changed keys
|
|
for k, newVal := range newMap {
|
|
if oldVal, exists := oldMap[k]; exists {
|
|
if oldVal != newVal {
|
|
changes = append(changes, change{k, oldVal, newVal})
|
|
}
|
|
} else {
|
|
changes = append(changes, change{k, "", newVal})
|
|
}
|
|
}
|
|
|
|
return changes
|
|
}
|