zlh-agent/internal/provision/executil/embedded_exec.go
2025-12-19 21:33:16 +00:00

28 lines
604 B
Go

package executil
import (
"bytes"
"fmt"
"os"
"os/exec"
"zlh-agent/scripts"
)
// RunEmbeddedScript executes an embedded script via bash by piping its contents to stdin.
// This mirrors RunScript's stdout/stderr behavior without requiring any files on disk.
func RunEmbeddedScript(path string) error {
data, err := scripts.FS.ReadFile(path)
if err != nil {
return fmt.Errorf("embedded script not found: %s", path)
}
cmd := exec.Command("bash")
cmd.Stdin = bytes.NewReader(data)
// Match RunScript behavior (executil.go)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
return cmd.Run()
}