@@ -207,17 +207,6 @@ func (e *Engine) runCommand(ctx context.Context, tool types.Tool, input string)
207
207
}
208
208
209
209
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
- }
221
210
interpreter = strings .TrimSpace (interpreter )[2 :]
222
211
223
212
interpreter = os .Expand (interpreter , func (s string ) string {
@@ -238,8 +227,24 @@ func (e *Engine) runCommand(ctx context.Context, tool types.Tool, input string)
238
227
}
239
228
240
229
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
+ }
241
246
242
- cmd := exec .Command (args [0 ], append ( args [ 1 :], f . Name ()) ... )
247
+ cmd := exec .Command (args [0 ], cmdArgs ... )
243
248
cmd .Env = env
244
249
cmd .Stdin = strings .NewReader (input )
245
250
cmd .Stderr = os .Stderr
0 commit comments