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
}