1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-06 16:06:56 +00:00
kyverno/cmd/cli/kubectl-kyverno/variables/parse.go
Charles-Edouard Brétéché 30598c64d8
fix: TODOs in cli (#8333)
Signed-off-by: Charles-Edouard Brétéché <charles.edouard@nirmata.com>
2023-09-11 15:24:10 +00:00

38 lines
916 B
Go

package variables
import (
"strings"
"github.com/kyverno/kyverno/cmd/cli/kubectl-kyverno/log"
)
func parse(vars ...string) map[string]string {
result := map[string]string{}
for _, variable := range vars {
variable = strings.TrimSpace(variable)
kvs := strings.Split(variable, "=")
if len(kvs) != 2 {
log.Log.Info("ignored variable", "variable", variable)
continue
}
key := strings.TrimSpace(kvs[0])
value := strings.TrimSpace(kvs[1])
if len(value) == 0 || len(key) == 0 {
log.Log.Info("ignored variable", "variable", variable)
continue
}
if strings.Contains(key, "request.object.") {
log.Log.Info("ignored variable (contains `request.object.`)", "variable", variable)
continue
}
if result[key] != "" {
log.Log.Info("ignored variable (duplicated)", "variable", variable)
continue
}
result[key] = value
}
if len(result) == 0 {
return nil
}
return result
}