03/04/2020 - GO
Bir komutun terminal çıktısını ilerlerken yakalamak istiyorsanız, aşağıdaki örneği kullanabilirsiniz. Verilen komutu çalıştıracak, orijinal çıktıyı yakalayacak ve satır satır yeniden basacaktır. İsterseniz, yazdırmadan önce satırı değiştirebilirsiniz.
package main
import (
"bufio"
"fmt"
"io"
"log"
"os/exec"
)
func main() {
cmd := exec.Command("gotest", "-v", "./...")
stdout, err := cmd.StdoutPipe()
if err != nil {
log.Fatal(err)
}
err = cmd.Start()
if err != nil {
log.Fatal(err)
}
buffer := bufio.NewReader(stdout)
for {
line, _, err := buffer.ReadLine()
fmt.Println(string(line))
if err == io.EOF {
break
}
}
}