exec: stream command output (#2166)

This commit is contained in:
Ludovic Fernandez 2024-04-21 18:01:40 +02:00 committed by GitHub
parent 76eb1eac8a
commit 42aa57e2b9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -2,6 +2,7 @@
package exec package exec
import ( import (
"bufio"
"context" "context"
"errors" "errors"
"fmt" "fmt"
@ -117,10 +118,27 @@ func (d *DNSProvider) run(ctx context.Context, command, domain, token, keyAuth s
cmd := exec.CommandContext(ctx, d.config.Program, args...) cmd := exec.CommandContext(ctx, d.config.Program, args...)
output, err := cmd.CombinedOutput() stdout, err := cmd.StdoutPipe()
if len(output) > 0 { if err != nil {
log.Println(string(output)) return fmt.Errorf("create pipe: %w", err)
} }
return err cmd.Stderr = cmd.Stdout
err = cmd.Start()
if err != nil {
return fmt.Errorf("start command: %w", err)
}
scanner := bufio.NewScanner(stdout)
for scanner.Scan() {
log.Println(scanner.Text())
}
err = cmd.Wait()
if err != nil {
return fmt.Errorf("wait command: %w", err)
}
return nil
} }