package symbols

import (
	"os/exec"
	"reflect"

	"dario.cat/mergo"
	"git.bazzel.dev/bmallen/helios/tools"
	"github.com/google/uuid"
)

var (
	Symbols = map[string]map[string]reflect.Value{
		"os/exec/exec": {
			"Command":        reflect.ValueOf(exec.Command),
			"CommandContext": reflect.ValueOf(exec.CommandContext),
			"LookPath":       reflect.ValueOf(exec.LookPath),
		},
		"git.bazzel.dev/bmallen/helios/tools/tools": {
			"Docker":         reflect.ValueOf(tools.Docker),
			"CloudFormation": reflect.ValueOf(tools.CloudFormation),
			"Terraform":      reflect.ValueOf(tools.Terraform),
			"Git":            reflect.ValueOf(tools.Git),
			"AWS":            reflect.ValueOf(tools.AWS),
			"SetLogger":      reflect.ValueOf(tools.SetLogger),
		},
		"github.com/google/uuid/uuid": {
			"New":       reflect.ValueOf(uuid.New),
			"NewString": reflect.ValueOf(uuid.NewString),
		},
		"dario.cat/mergo/mergo": {
			"Merge":              reflect.ValueOf(mergo.Merge),
			"WithOverride":       reflect.ValueOf(mergo.WithOverride),
			"WithoutDereference": reflect.ValueOf(mergo.WithoutDereference),
		},
	}
)
