package goenv

import (
	"fmt"
	"os/exec"

	"zlh-agent/internal/state"
)

/*
   Verify validates that the Go dev container runtime is usable.

   Responsibilities:
   - Ensure `go` binary is present and executable
   - Ensure GOPATH / GOMOD usage won’t immediately fail

   IMPORTANT:
   - No installation here
   - No state mutation
   - Safe to call multiple times
*/
func Verify(cfg state.Config) error {

	// Check go binary
	if _, err := exec.LookPath("go"); err != nil {
		return fmt.Errorf("go binary not found in PATH")
	}

	// Optional sanity check: go env should run
	cmd := exec.Command("go", "env")
	if err := cmd.Run(); err != nil {
		return fmt.Errorf("go env failed to execute")
	}

	return nil
}
