@@ -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