package executil import ( "bytes" "fmt" "os" "os/exec" "strings" "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 { normalized := normalizeEmbeddedPath(path) data, err := scripts.FS.ReadFile(normalized) 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() } func normalizeEmbeddedPath(path string) string { return strings.TrimPrefix(path, "scripts/") }