Files
pmg/sandbox/platform/probe_env.go
T

32 lines
953 B
Go
Raw Normal View History

package platform
import (
"context"
"os"
"os/exec"
)
// probeEnv abstracts the host environment so probes can be unit-tested without
// touching the real filesystem or PATH. Real probes use defaultProbeEnv; tests
// inject fakes.
type probeEnv interface {
lookPath(name string) (string, error)
statExecutable(path string) (os.FileInfo, error)
readFile(path string) ([]byte, error)
runCommand(ctx context.Context, name string, args ...string) ([]byte, error)
}
type defaultProbeEnv struct{}
func (defaultProbeEnv) lookPath(name string) (string, error) { return exec.LookPath(name) }
func (defaultProbeEnv) statExecutable(path string) (os.FileInfo, error) {
return os.Stat(path)
}
func (defaultProbeEnv) readFile(path string) ([]byte, error) { return os.ReadFile(path) }
func (defaultProbeEnv) runCommand(ctx context.Context, name string, args ...string) ([]byte, error) {
return exec.CommandContext(ctx, name, args...).CombinedOutput()
}