1
0
mirror of https://github.com/rancher/os.git synced 2025-07-15 15:51:36 +00:00
os/pkg/config/rename.go
2021-10-02 16:08:48 -07:00

50 lines
1.1 KiB
Go

package config
import (
"strings"
"github.com/rancher/wrangler/pkg/data"
"github.com/rancher/wrangler/pkg/data/convert"
schemas2 "github.com/rancher/wrangler/pkg/schemas"
"github.com/rancher/wrangler/pkg/schemas/mappers"
)
type FuzzyNames struct {
mappers.DefaultMapper
names map[string]string
}
func (f *FuzzyNames) ToInternal(data data.Object) error {
for k, v := range data {
if newK, ok := f.names[k]; ok && newK != k {
data[newK] = v
}
}
return nil
}
func (f *FuzzyNames) addName(name, toName string) {
f.names[strings.ToLower(name)] = toName
f.names[convert.ToYAMLKey(name)] = toName
f.names[strings.ToLower(convert.ToYAMLKey(name))] = toName
}
func (f *FuzzyNames) ModifySchema(schema *schemas2.Schema, schemas *schemas2.Schemas) error {
f.names = map[string]string{}
for name := range schema.ResourceFields {
if strings.HasSuffix(name, "s") && len(name) > 1 {
f.addName(name[:len(name)-1], name)
}
if strings.HasSuffix(name, "es") && len(name) > 2 {
f.addName(name[:len(name)-2], name)
}
f.addName(name, name)
}
f.names["pass"] = "passphrase"
f.names["password"] = "passphrase"
return nil
}