package discover

import (
	"strings"

	"github.com/NVIDIA/nvidia-container-toolkit/internal/logger"
	"github.com/NVIDIA/nvidia-container-toolkit/internal/lookup/root"
)

// NewCUDACompatHookDiscoverer creates a discoverer for a enable-cuda-compat hook.
// This hook is responsible for setting up CUDA compatibility in the container and depends on the host driver version.
func NewCUDACompatHookDiscoverer(logger logger.Interface, nvidiaCDIHookPath string, driver *root.Driver) Discover {
	_, cudaVersionPattern := getCUDALibRootAndVersionPattern(logger, driver)
	var args []string
	if !strings.Contains(cudaVersionPattern, "*") {
		args = append(args, "--host-driver-version="+cudaVersionPattern)
	}

	return CreateNvidiaCDIHook(
		nvidiaCDIHookPath,
		"enable-cuda-compat",
		args...,
	)
}