Skip to content

Commit 78917b2

Browse files
Don't pass file to interpreter if it is zero length
1 parent 840ac97 commit 78917b2

File tree

1 file changed

+17
-12
lines changed

1 file changed

+17
-12
lines changed

pkg/engine/engine.go

+17-12
Original file line numberDiff line numberDiff line change
@@ -207,17 +207,6 @@ func (e *Engine) runCommand(ctx context.Context, tool types.Tool, input string)
207207
}
208208

209209
interpreter, rest, _ := strings.Cut(tool.Instructions, "\n")
210-
f, err := os.CreateTemp("", version.ProgramName)
211-
if err != nil {
212-
return "", err
213-
}
214-
defer os.Remove(f.Name())
215-
216-
_, err = f.Write([]byte(rest))
217-
_ = f.Close()
218-
if err != nil {
219-
return "", err
220-
}
221210
interpreter = strings.TrimSpace(interpreter)[2:]
222211

223212
interpreter = os.Expand(interpreter, func(s string) string {
@@ -238,8 +227,24 @@ func (e *Engine) runCommand(ctx context.Context, tool types.Tool, input string)
238227
}
239228

240229
output := &bytes.Buffer{}
230+
cmdArgs := args[1:]
231+
232+
if strings.TrimSpace(rest) != "" {
233+
f, err := os.CreateTemp("", version.ProgramName)
234+
if err != nil {
235+
return "", err
236+
}
237+
defer os.Remove(f.Name())
238+
239+
_, err = f.Write([]byte(rest))
240+
_ = f.Close()
241+
if err != nil {
242+
return "", err
243+
}
244+
cmdArgs = append(cmdArgs, f.Name())
245+
}
241246

242-
cmd := exec.Command(args[0], append(args[1:], f.Name())...)
247+
cmd := exec.Command(args[0], cmdArgs...)
243248
cmd.Env = env
244249
cmd.Stdin = strings.NewReader(input)
245250
cmd.Stderr = os.Stderr

0 commit comments

Comments
 (0)