package worker import ( "bytes" "fmt" "os/exec" ) func RunFunction(path string, fc *FuncConfig, input []byte) ([]byte, error) { if fc.Runtime != "exec" { return nil, fmt.Errorf("unsupported runtime: %s", fc.Runtime) } cmd := exec.Command(path) cmd.Stdin = bytes.NewReader(input) var out bytes.Buffer cmd.Stdout = &out cmd.Stderr = &out if err := cmd.Run(); err != nil { return nil, fmt.Errorf("failed: %w\noutput: %s", err, out.String()) } return out.Bytes(), nil }